这是一个关于测试环境设置的问题。
在我的项目中,我有一些访问测试数据文件的单元测试。这些单元测试可以通过测试运行器从我的项目目录运行。或者,我可以单独运行每个测试文件/模块,例如出于调试目的。
问题是,根据我运行测试的位置,当前目录是不同的。因此,当从项目目录运行这些文件时,通过给出相对于当前目录的路径来打开测试数据文件(如下所示)将不起作用,因为测试数据文件不在该目录中。
f = open('test_data.ext', 'r')
我想过使用 __file__ 使用相对于当前测试模块的路径,但是这个当调用 __file__ 的测试模块单独运行时不起作用 https://stackoverflow.com/a/6416114/637325.
人们一般如何解决这个问题?
我想到了许多不同的方法:
- 为您的数据目录设置环境变量
- 编写一个您始终导入的小模块,其唯一目的是相对于数据目录具有固定位置,然后调用
__file__
从那里
- 在运行时生成数据
- 将数据存储在数据库而不是文件中
- 将数据存储在文件系统中的固定位置,而不是相对于包的位置
- 不要直接运行您的测试代码
对您来说最有意义的解决方案取决于您的环境以及特定的数据和程序。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)