49 lines
1.2 KiB
Python
49 lines
1.2 KiB
Python
|
#!/usr/bin/env python
|
||
|
"""
|
||
|
Simple script to generate a test report.
|
||
|
This is a simplified version of run_tests.py focused on generating the JSON report.
|
||
|
"""
|
||
|
import os
|
||
|
import subprocess
|
||
|
import sys
|
||
|
from datetime import datetime
|
||
|
|
||
|
|
||
|
def main():
|
||
|
"""Run tests and generate JSON report."""
|
||
|
# Create directories if they don't exist
|
||
|
os.makedirs("test_reports", exist_ok=True)
|
||
|
|
||
|
# Generate timestamp for current run
|
||
|
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
|
||
|
|
||
|
print(f"Running tests and generating JSON report with timestamp: {timestamp}")
|
||
|
|
||
|
# Run pytest with the JSON reporter plugin loaded
|
||
|
cmd = [
|
||
|
"pytest",
|
||
|
"-v",
|
||
|
"--tb=short",
|
||
|
f"--junitxml=test_reports/junit_{timestamp}.xml",
|
||
|
"-p",
|
||
|
"tests.json_reporter",
|
||
|
"tests/",
|
||
|
]
|
||
|
|
||
|
result = subprocess.run(cmd, capture_output=False)
|
||
|
|
||
|
if result.returncode == 0:
|
||
|
print("\nTests completed successfully!")
|
||
|
else:
|
||
|
print(f"\nTests completed with some failures (exit code: {result.returncode})")
|
||
|
|
||
|
print(
|
||
|
f"JSON report should be available at: test_reports/test_results_{timestamp}.json"
|
||
|
)
|
||
|
|
||
|
return result.returncode
|
||
|
|
||
|
|
||
|
if __name__ == "__main__":
|
||
|
sys.exit(main())
|