2

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

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

是否有人已经在 TestSuite 中完成了这项工作?或者有一个想法怎么做?

谢谢

4

1 回答 1

1

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

2)但是,如果您真的想重复所有失败的测试,并且没有人提出更好的解决方案,您可以编写一个自定义测试运行程序,使用 api 之类的

#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

于 2012-04-25T12:47:49.713 回答