现在假设有以下的
测试用例文件:py-add-simple.py
class InequalityTest(unittest.TestCase):
def testEqual(self):
self.assertNotEqual(1, 3-2)
def testNotEqual(self):
self.assertEqual(2, 3-2)
if __name__ == '__main__':
unittest.main()
执行结果如下:
Hund@vm-env:/junhui/Knowledge/Learn_Python/py_tests$
python py-add-simple.py
FF
======================================================================
FAIL: testEqual (__main__.InequalityTest)
----------------------------------------------------------------------
Traceback (most recent call last):
File "py-add-simple.py", line 11, in testEqual
self.assertNotEqual(1, 3-2)
AssertionError: 1 == 1
======================================================================
FAIL: testNotEqual (__main__.InequalityTest)
----------------------------------------------------------------------
Traceback (most recent call last):
File "py-add-simple.py", line 14, in testNotEqual
self.assertEqual(2, 3-2)
AssertionError: 2 != 1
----------------------------------------------------------------------
Ran 2 tests in 0.000s
FAILED (failures=2)
从上面的结果可以看出testcase 的执行顺序是按字母排序的,那么我想先执行testNotEqual 这个测试用例该怎么办呢?经过查看unittest 的文档我找到了如下解决方案,可以把main 中修改为下面的suite 格式:
if __name__ == '__main__':
suite = unittest.TestSuite()
suite.addTest(InequalityTest("testNotEqual"))
suite.addTest(InequalityTest("testEqual"))
runner = unittest.TextTestRunner()
runner.run(suite)
执行结果:
Hund@vm-env:/junhui/Knowledge/Learn_Python/py_tests$ python py-add-simple.py
FF
======================================================================
FAIL: testNotEqual (__main__.InequalityTest)
----------------------------------------------------------------------
Traceback (most recent call last):
File "py-add-simple.py", line 14, in testNotEqual
self.assertEqual(2, 3-2)
AssertionError: 2 != 1
======================================================================
FAIL: testEqual (__main__.InequalityTest)
----------------------------------------------------------------------
Traceback (most recent call last):
File "py-add-simple.py", line 11, in testEqual
self.assertNotEqual(1, 3-2)
AssertionError: 1 == 1
----------------------------------------------------------------------
Ran 2 tests in 0.000s
FAILED (failures=2)