保护鼻子免受Python解释器崩溃

时间:2013-01-15 08:26:16

标签: python unit-testing boost-python nose python-bindings

我们有一堆调用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.有没有办法用鼻子编程实现这个?还有其他更好的想法吗?

1 个答案:

答案 0 :(得分:3)

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