在python的unittest测试套件中强制执行测试顺序



我已经编写了代码,该代码可以找到可以在软件包中运行的所有测试,然后将它们聚集到单个测试套件中。唯一的是,某些测试取决于已经运行的其他测试。

看起来像是不良的测试体系结构,但是我正在测试的是应用程序的启动和关闭。因此,我进行了测试,以确保一切都适当地栩栩如生,然后进行另一套测试,以确保一切都正确清理。显然,在启动测试完成之前,我无法运行关闭测试。

在Python的Unitest中,是否有可能说"仅在以下测试中进行此测试,否则运行其他测试并回到我身边"?

我知道我可以通过明确说出启动测试,现在运行关闭测试来执行此顺序。但是我正在使用测试发现,以便您可以编写更多测试而无需显式调用它们,因此我试图避免这样做。

unittest模块要求每个测试能够独立运行:对在之前或之后运行的其他测试无关。但是,您可以通过在测试类中添加setUp()tearDown()方法来依靠其他代码在每个测试之前或之后运行。您还可以依靠其他代码在使用setUpClass()setUpModule()及其撕裂的测试的A 组之前或之后运行。

我认为Pytest固定装置的灵活性更大,但我没有使用太多。

最新更新