代码如下:
import pymysql import unittest import time import unittest.suite import HTMLTestRunner import sys def hell(a): print(a) return a testunit = unittest.TestSuite() testunit.addTest(hell('ad')) filename = '/Users/vivi/Downloads/aa.html' fp = open(filename, 'wb') # 之前写的是file(filename,'wb'),但是无法识别file方法,改成open,OK! runner = HTMLTestRunner.HTMLTestRunner(stream=fp, title=u'print', description=u'简单') runner.run(testunit)
Traceback (most recent call last): File "/Applications/Python 3.5/……/B.py", line 30, intestunit.addTest(hell('ad')) File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/unittest/suite.py", line 47, in addTest raise TypeError("{} is not callable".format(repr(test))) TypeError: 'ad' is not callable
unittest.TestSuite
实例的 addTest()
方法使用不正确,传参有误,建议好好看看unittest
模块的文档。
给出一个代码示例:
#!/usr/bin/env python # -*- coding: utf-8 -*- import unittest import HTMLTestRunner def hell(a): print(a) return a class HellTest(unittest.TestCase): def setUp(self): self.hell = hell def tearDown(self): pass def testHell(self): self.assertEqual(self.hell('ad'), 'ad') if __name__ == '__main__': testunit = unittest.TestSuite() testunit.addTest(HellTest('testHell')) filename = 'D:\\aa.html' fp = open(filename, 'wb') runner = HTMLTestRunner.HTMLTestRunner(stream=fp, title=u'print', description=u'简单') runner.run(testunit) fp.close()