如何在setUpClass中使python单元测试失败?

时间:2013-02-08 08:02:11

标签: python unit-testing python-2.7

我正在使用python进行一些单元测试,并在setUpClass进行一些预测试。如何在unitest中抛出fail - setUpClass,如下面的简单示例所示:

class MyTests(unittest.TestCase):

    @classmethod
    def setUpClass(cls):    
        unittest.TestCase.fail("Test")

    def test1(self):
        pass

if __name__ == '__main__':
    unittest.main()

给出错误TypeError: unbound method fail() must be called with TestCase instance as first argument (got str instance instead)

我理解我失败的错误是实例方法,我还没有MyClass的实例。像

一样使用实例
unittest.TestCase().fail("Test")

也不起作用,因为unittest.TestCase本身没有测试。如果MyClass中的某些条件未满足,setUpClass中的所有测试都会失败?

后续问题:有没有办法在setUpClass中查看测试?

2 个答案:

答案 0 :(得分:37)

放入setUp实例方法的

self.fail("test")使所有测试失败

我认为在类级别执行此操作的最简单方法是创建类变量,如:

@classmethod
def setUpClass(cls):
   cls.flag = False

def setUp(self):
   if self.flag:
       self.fail("conditions not met")

希望这就是你想要的。

答案 1 :(得分:29)

使用简单的断言应该可以正常工作

assert False, "I mean for this to fail"