我正在使用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
完成执行后我需要执行一段程序。我怎样才能做到这一点?当我将代码添加到类级别时,它会在完成以下部分输出之后执行它。
..................
答案 0 :(得分:1)
您需要编写自己的testrunner,以便根据套件的结果返回退出代码。
您需要做的就是在unittest-module文档中解释。使用TestLoader加载套件,使用TextTestRunner运行套件。然后根据套件的结果,使用适当的退出代码调用sys.exit。