我有一个结构如下的项目:
|tools/
|-- test/
| |-- __init__.py
| |-- test_class1.py
| |-- test_class2.py
|
|-- tools/
|-- __init__.py
| |-- class1.py
| |-- class2.py
|
|-- test_runner (Python script that calls unittest.TestLoader().discover('test'))
|-- README.md
我想运行test_runner
并让它执行test
文件夹中的所有测试。我的个人测试会有这样的一行:from test_class import TestClass
测试适当的类。
test_runner
看起来像这样:
#!/usr/bin/env python
import unittest
import sys
import os
sys.path.append(os.path.realpath(__file__) + '/tools')
suite = unittest.TestLoader().discover('test')
results = unittest.TextTestRunner(verbosity=2).run(suite)
if len(results.errors) > 0 or len(results.failures) > 0:
sys.exit(1)
sys.exit()
现在这不起作用,我的测试文件无法导入它们相应的类。如果我这样做,我可以让它工作,export PYTHONPATH=/path/to/file
但我想通过脚本让它工作。
我也尝试过sys.path.insert(0, os.path.dirname(__file__) + '/tools')
,但这不起作用,因为文件在我使用sys.path.insert
.