如果发生错误,nosetests重新启动测试

时间:2012-04-25 08:56:51

标签: python unit-testing nose

我在我的python项目中使用鼻子的TestSuite进行单元测试。

问题是我的项目与第三方沙箱链接并通过api进行通信,但有时,错误来自他们的一方。所以我试图找到一种方法来重新启动测试,如果它因特定错误而失败。

有人在TestSuite中做过这个吗?或者知道怎么做?

由于

1 个答案:

答案 0 :(得分:1)

1)我经常在测试中重试远程代码,而不是重新运行整个测试。

2)但是,如果你真的想重复所有失败的测试,并且没有人想出更好的解决方案,那么你可以编写一个自定义的testrunner,类似于

#in unittest.TestCase
retryManager.logFailure(test=self, error)

#where you run tests
for test in retryManager.failedTests
    suite = unittest.TestLoader().loadTestsFromTestCase(testclass)
    testResult = unittest.TextTestRunner(verbosity=2).run(suite)

如果您不想捕获异常,您还可以查看测试是否成功testResult.wasSuccessful()

RetryManager只是一种失败的存储库/日志。

3)使用pytest,它内置了这个功能:http://pytest.org/latest/xdist.html#looponfailing