44

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

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

4

2 回答 2

61

self.fail("test")放入您的 setUp 实例方法未通过所有测试

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

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

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

希望这是你想要的。

于 2013-02-08T08:05:58.733 回答
47

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

assert False, "I mean for this to fail"
于 2013-02-08T08:16:04.087 回答