mirror of
https://github.com/semantica-agi/semantica.git
synced 2026-08-30 04:40:16 +00:00
56 lines
1.7 KiB
Python
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()
|