为什么没有运行unittest?

2024-09-27 21:33:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我创建了一些单元测试,但它们不是跑。为什么是这样吗。你知道吗

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


class TestInversion(unittest.TestCase):

    def setUp(self):
        pass

    def test_1(self):
        self.assertEqual(1, 2)

    def test_2(self):
        self.assertEqual(2, 2)

    def test_3(self):
        self.assertEqual(3, 3)

    def test_4(self):
        self.assertEqual(4, 4)

Tags: nametestimportselfifmaindefsetup
2条回答

您可能需要移动:

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

在班级下面。你知道吗

正如martijnpieters指出的那样,import unittest需要保持在顶端。你知道吗

这是因为python解释器首先执行unittest.main(),然后解析类。(因为这是您编写代码的顺序。)

if __name__测试移到底部(将import unittest部分留在顶部):

import unittest

class TestInversion(unittest.TestCase):

    def setUp(self):
        pass

    def test_1(self):
        self.assertEqual(1, 2)

    def test_2(self):
        self.assertEqual(2, 2)

    def test_3(self):
        self.assertEqual(3, 3)

    def test_4(self):
        self.assertEqual(4, 4)

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

然后它就会起作用:

$ python test.py 
F...
======================================================================
FAIL: test_1 (__main__.TestInversion)
                                   
Traceback (most recent call last):
  File "test.py", line 9, in test_1
    self.assertEqual(1, 2)
AssertionError: 1 != 2

                                   
Ran 4 tests in 0.000s

FAILED (failures=1)

在执行main()时,您需要已经定义了测试用例;如果您在顶部调用main(),那么还没有定义测试。你知道吗

相关问题 更多 >

    热门问题