我正在使用 python pytest 来运行我的单元测试。我的项目文件夹是:
Main
包含数据文件:A.txt
Main\Tests
- 我运行pytest的文件夹
Main\Tests\A_test
- 包含测试文件的文件夹
A_test 文件夹中的测试使用文件 A.txt
(位于 Main 文件夹中)。
我的问题是,当我运行 py.test 时,测试失败,因为它找不到 A.txt
。
我发现这是因为pytest在运行测试时使用了路径 Main\Test
而不是将路径更改为 Main\Tests\A_test
(我在打开时使用相对路径 A.txt
在测试文件中)
我的问题:有没有办法让 pytest 将目录更改为它为每个测试执行的测试文件夹?这样测试中的相对路径仍然有效吗?
有没有其他通用的方法来解决它? (我不想将所有内容都更改为绝对路径或类似的东西,这也是一个例子,在现实生活中我有数百个测试)。
谢谢,
诺姆
原文由 Noam 发布,翻译遵循 CC BY-SA 4.0 许可协议
好吧,我有点解决了,不确定这是最好的方法,但它正在工作:
在每个测试中:
\Main\Tests
\Main\Tests
执行的,那么我chdir
到\Main\Tests\A_test
我在
def setUpClass
方法下执行此操作。例如:
这使得测试通过无论是从
Tests
文件夹(使用pytest)还是从A_test
文件夹(通过pycharm)执行