Python unittest 组织testcase执行顺序

上一篇 / 下一篇  2014-07-15 16:29:58 / 个人分类:软件测试

现在假设有以下的测试用例文件:py-add-simple.py
import unittest
  
  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)




TAG: Python unittest python

 

评分:0

我来说两句

Open Toolbar