我创建了一些单元测试但它们没有运行。为什么会这样。
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)
答案 0 :(得分:1)
你可能想要移动:
if __name__ == '__main__':
unittest.main()
到了课堂下面。
正如Martijn Pieters指出的那样,import unittest
需要保持在最高位置。
这是因为python解释器首先执行unittest.main()
然后解析该类。 (因为这是你编写代码的顺序。)
答案 1 :(得分: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()
,则不会定义 的测试。