python测试套件完成执行后执行函数

时间:2014-08-20 10:21:33

标签: python unit-testing python-unittest

我正在使用python unittest框架来进行一些测试。

class AbstractTest(unittest.TestCase):
  def setUp(self):


  def tearDown(self):
    # Close!
    self.transport.close()

  def testVoid(self):
    self.client.testVoid()

  def testString(self):
    global test_basetypes_fails
    try:
      self.assertEqual(self.client.testString('Python' * 20), 'Python' * 20)
    except AssertionError, e:
      test_basetypes_fails = True
      print test_basetypes_fails
      raise AssertionError( e.args )
    try:
      self.assertEqual(self.client.testString(''), '')
    except AssertionError, e:
      test_basetypes_fails = True
      raise AssertionError( e.args )

  def testByte(self):
    global test_basetypes_fails
    try:
      self.assertEqual(self.client.testByte(63), 63)
    except AssertionError, e:
      test_basetypes_fails = True
      raise AssertionError( e.args )
    try:
      self.assertEqual(self.client.testByte(-127), -127)
    except AssertionError, e:
      test_basetypes_fails = True
      raise AssertionError( e.args )

  @classmethod
  def tearDownClass(cls):
    #sys.exit(1)

当我执行测试时,我得到了以下结果。

..................
----------------------------------------------------------------------
Ran 18 tests in 2.715s

OK

完成执行后我需要执行一段程序。我怎样才能做到这一点?当我将代码添加到类级别时,它会在完成以下部分输出之后执行它。

..................

1 个答案:

答案 0 :(得分:1)

您需要编写自己的testrunner,以便根据套件的结果返回退出代码。

您需要做的就是在unittest-module文档中解释。使用TestLoader加载套件,使用TextTestRunner运行套件。然后根据套件的结果,使用适当的退出代码调用sys.exit。