Files
semantica/run_normalize_tests_v2.py

56 lines
1.7 KiB
Python

import unittest
import sys
import os
def run_tests():
print("SCRIPT STARTED")
log_path = os.path.join(os.getcwd(), "normalize_results_v3.log")
print(f"Writing log to {log_path}")
# Ensure we can import from semantica
sys.path.append(os.getcwd())
try:
loader = unittest.TestLoader()
start_dir = 'tests/normalize'
print(f"Discovering tests in {start_dir}")
suite = loader.discover(start_dir)
print(f"Discovered {suite.countTestCases()} tests.")
runner = unittest.TextTestRunner(verbosity=2)
# Open a log file to write results
with open(log_path, 'w') as f:
f.write("Test Execution Log:\n")
f.write("===================\n\n")
# Use a custom runner that prints to both stdout and the file
class TeeStream:
def __init__(self, stream1, stream2):
self.stream1 = stream1
self.stream2 = stream2
def write(self, data):
self.stream1.write(data)
self.stream2.write(data)
def flush(self):
self.stream1.flush()
self.stream2.flush()
runner = unittest.TextTestRunner(stream=TeeStream(sys.stdout, f), verbosity=2)
result = runner.run(suite)
if result.wasSuccessful():
print("ALL TESTS PASSED")
sys.exit(0)
else:
print("SOME TESTS FAILED")
sys.exit(1)
except Exception as e:
print(f"An error occurred: {e}")
sys.exit(1)
if __name__ == "__main__":
run_tests()