【发布时间】:2016-01-06 22:42:24
【问题描述】:
有没有办法让一个 py.test 重新导入类?这在 Nose 中是可能的:每个测试模块仅在运行时才被导入,因此它可以卸载当前加载的任何内容,在测试模块级别配置某些内容,以及使用新配置后出现的任何导入,并且测试代码可以使用已有的内容被进口。
这在 py.test 中不起作用,因为所有测试模块都是在发现时导入的,因此在模块级别完成的任何导入时配置都会影响所有随后导入的测试。有没有办法告诉 py.test “重新开始”,即卸载所有内容?有没有办法测试 py.test 以重新启动自身(生成子进程并退出父进程)?
我们可以有两个单独的测试套件(在一个文件夹上运行一次 py.test,在另一个文件夹上运行第二次),但这要求开发人员记住每次测试时都运行两个测试套件(这可以如果本地 mod 影响其他人修改的功能,会发生相当多的情况)。
【问题讨论】:
标签: python python-import restart pytest