是否可以在Unittest中的一个文件中包含2个测试类

时间:2011-05-09 09:19:25

标签: python unit-testing

import ....

class Test1:

  @classmethod
  def setUpClass(self):
    ...

  def test_something(self):
    ...

  @classmethod
  def tearDownClass(self):
    ...

class Test2:

  @classmethod
  def setUpClass(self):
    ...

  def test_anotherthing(self):
    ...

  @classmethod
  def tearDownClass(self):
    ...

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

2 个答案:

答案 0 :(得分:3)

当然有可能,只要确保它们继承自unittest.TestCase。然后,unittest.main将发现并运行它们。

您还可以使用unittest.TestLoader().loadTestsFromTestCaseunittest.TestLoader().loadTestsFromNames方法在文件中运行部分测试。

答案 1 :(得分:1)

是的。你为什么不给它一个旋转呢?

这是一个例子,我的测试类继承自unittest.TestCase并且测试故意失败:

#!/usr/bin/env python

import unittest

class TestAddition(unittest.TestCase):

    def test_addition(self):
        self.assertEquals(3, 1 + 1)

class TestSubtraction(unittest.TestCase):

    def test_subtraction(self):
        self.assertEquals(3, 1 - 1)

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

% ./t.py 
FF
======================================================================
FAIL: test_addition (__main__.TestAddition)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "./t.py", line 8, in test_addition
    self.assertEquals(3, 1 + 1)
AssertionError: 3 != 2

======================================================================
FAIL: test_subtraction (__main__.TestSubtraction)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "./t.py", line 13, in test_subtraction
    self.assertEquals(3, 1 - 1)
AssertionError: 3 != 0

----------------------------------------------------------------------
Ran 2 tests in 0.002s

FAILED (failures=2)