0

我创建了一些单元测试,但它们没有运行。为什么会这样。

   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)
4

2 回答 2

1

您可能想要移动:

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

到班级下面。

import unittest正如 Martijn Pieters 指出的那样,需要保持领先地位。

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

于 2013-02-02T16:54:51.323 回答
1

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()在顶部调用,则尚未定义任何测试。

于 2013-02-02T16:54:59.160 回答