Files
ivatar/scripts/run_tests_with_coverage.py
Oliver Falk e6596b925a Fix coverage measurement in CI
- Replace subprocess call with direct Django test runner invocation
- This allows coverage tool to properly track test execution
- Use django.setup() and get_runner() to run tests directly
- Coverage should now show proper test coverage instead of 1%
2025-10-16 19:54:53 +02:00

47 lines
1.1 KiB
Python
Executable File

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Run tests with OpenTelemetry enabled and coverage measurement.
This script is designed to be used with 'coverage run' command.
"""
import os
import sys
import django
from django.conf import settings
from django.test.utils import get_runner
def main():
# Enable OpenTelemetry
os.environ["ENABLE_OPENTELEMETRY"] = "true"
os.environ["OTEL_ENABLED"] = "true"
os.environ["OTEL_SERVICE_NAME"] = "ivatar-test"
os.environ["OTEL_ENVIRONMENT"] = "test"
print("Running tests with OpenTelemetry enabled...")
print("==========================================")
# Setup Django
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "ivatar.settings")
django.setup()
# Get Django test runner
TestRunner = get_runner(settings)
test_runner = TestRunner()
# Run tests
failures = test_runner.run_tests([])
if failures:
print(f"Tests failed with {failures} failures")
return 1
else:
print("")
print("Tests completed successfully (OpenTelemetry enabled)")
return 0
if __name__ == "__main__":
sys.exit(main())