当testcase失败时跳过拆解

时间:2014-12-09 13:43:20

标签: python nosetests

如果任何测试用例失败,是否有任何方法可以跳过拆解方法。 我尝试了-x选项,但它只跳过测试用例而不是拆解。 我确信必须有一些方法,因为测试用例失败,执行它的设置需要在那里进行调试。

1 个答案:

答案 0 :(得分:0)

以某种方式实现它的一种方法就是这样:

class TestClass():

    def setup(self):
        print "I am in setup"

    def teardown(self):
        if getattr(self, 'is_fail', False):
            return
        print "I am in teardown"

    def test_fail(self):
        print "I am in test fail"
        try:
            assert False
        except AssertionError as e:
            setattr(self, 'is_fail', True)
            raise e

    def test_pass(self):
        print 'I am in test pass'
        try:
            assert True
        except AssertionError as e:
            setattr(self, 'is_fail', True)
            raise e

如果你运行它,你会得到:

  

I am in setup
  I am in test fail

  I am in setup
  I am in test pass
  I am in teardwon

但请注意,在这种情况下捕获AssertionError并不是一个好习惯。你应该考虑寻找一个鼻子插件或自己写一个。