3

我们有一堆调用 Python C/C++ 绑定的测试。我们用鼻子运行这些测试:

nosetests myapp
.....
----------------------------------------------------------------------
Ran 5 tests in 0.009s

有时,我们的绑定发生了错误,导致 Python 解释器崩溃,例如,在测试号 3 上:

test03_badcode (myapp.tests.test_badcode) ... Segmentation fault

问题:从这种情况中恢复的最佳方法是什么?理想情况下,我宁愿鼻子自己处理这些崩溃,但我知道这是不可能实现的。我想到的下一个解决方案是记下测试并重新启动鼻子,现在跳过糟糕的测试。在我的示例中,这意味着执行测试 1、2、4 和 5,但执行测试 3。有没有办法用鼻子以编程方式实现这一点?还有其他更好的想法吗?

4

1 回答 1

3

像往常一样使用鼻子,有一个插件。 Insulate将在单独的进程中运行每个测试。这会减慢速度,但可以保证一个测试中的崩溃不会影响其他测试。

于 2013-01-15T13:48:49.480 回答