我们有一组测试称为Python C/C++绑定。我们用鼻子做这些测试:
nosetests myapp
.....
----------------------------------------------------------------------
Ran 5 tests in 0.009s
有时,我们的绑定会出现错误,导致Python解释器崩溃,比如,在测试3上:
test03_badcode (myapp.tests.test_badcode) ... Segmentation fault
问:从中恢复的最好方法是什么?理想情况下,我更喜欢机头处理这些碰撞本身,但我知道这是不可能实现的。我想到的下一个解决方案是记下测试并重新启动nose,现在跳过坏的测试。在我的示例中,这意味着要执行测试1、2、4和5,而不是测试3。有没有办法用nose编程实现这一点?还有更好的主意吗?
最佳答案
和往常一样,nose也有一个插件。Insulate将在单独的进程中运行每个测试。这会减慢速度,但你可以保证一个测试中的崩溃不会影响其他测试。