我正在使用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中的测试?

最佳答案

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

我认为在类级别执行此操作的最简单方法是使一个类变量如下所示:

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

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

希望这就是你想要的。

关于python - 如何在setUpClass中使python unittest失败?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14768135/

10-09 17:10