【问题标题】:testing incompatible configurations with py.test使用 py.test 测试不兼容的配置
【发布时间】:2016-01-06 22:42:24
【问题描述】:

有没有办法让一个 py.test 重新导入类?这在 Nose 中是可能的:每个测试模块仅在运行时才被导入,因此它可以卸载当前加载的任何内容,在测试模块级别配置某些内容,以及使用新配置后出现的任何导入,并且测试代码可以使用已有的内容被进口。

这在 py.test 中不起作用,因为所有测试模块都是在发现时导入的,因此在模块级别完成的任何导入时配置都会影响所有随后导入的测试。有没有办法告诉 py.test “重新开始”,即卸载所有内容?有没有办法测试 py.test 以重新启动自身(生成子进程并退出父进程)?

我们可以有两个单独的测试套件(在一个文件夹上运行一次 py.test,在另一个文件夹上运行第二次),但这要求开发人员记住每次测试时都运行两个测试套件(这可以如果本地 mod 影响其他人修改的功能,会发生相当多的情况)。

【问题讨论】:

    标签: python python-import restart pytest


    【解决方案1】:

    使用 --boxed 选项运行 py.test 是否可以解决您的问题? (为此您需要install the xdist plugin。)

    pytest的创始人hpk42在这个答案中还有一个详细的例子:https://stackoverflow.com/a/11806997/54056

    【讨论】:

    • 谢谢,听起来很有希望,所以我会尝试一下,然后我可以投票/关闭
    猜你喜欢
    • 2011-09-17
    • 2023-03-24
    • 1970-01-01
    • 2019-11-04
    • 1970-01-01
    • 1970-01-01
    • 2014-01-18
    • 1970-01-01
    相关资源
    最近更新 更多