我有一堆分散在不同目录下的unittest
测试用例。还有一个仅包含测试辅助脚本的目录。所以我的文件树看起来像这样:
test_dir1
test_dir2
test_dir3
helper_scripts
test_dir*
中的每个Python文件都将包含以下行:
import sys
sys.path.append('../helper_scripts')
import helper_script
只要我在测试目录中运行测试,这一切都很正常。但是,我想在项目根目录下运行以下命令:
py.test
我希望您能遍历所有目录并运行找到的每个测试。问题是测试是从错误的目录运行的,因此
sys.path.append
不会附加helper_scripts
目录,而是附加了项目根目录的父目录。这将导致所有导入失败并出现Import Error
。有没有办法告诉
py.test
从它们的目录中运行测试脚本?即在执行它们之前更改当前工作目录?如果没有,是否有其他测试运行器可以使用?