【发布时间】:2017-02-17 03:15:40
【问题描述】:
我收到以下错误
TypeError: __init__() takes exactly 1 argument (2 given)
当我运行以下 python 时:
import unittest
from unittest import TestCase
class myClass( unittest.TestCase ):
def __init__( self ):
pass
if __name__ == '__main__':
unittest.main( argv=sys.argv, testRunner = unittest.TextTestRunner(verbosity=2))
有什么想法吗?我需要运行 init,因为我只想做一次设置工作。不是每次测试一次。这将是对整体测试运行时间的重大优化。
这是堆栈爬取的其余部分:
Traceback (most recent call last):
File "./RestEditRecord.py", line 1439, in <module>
unittest.main( argv=sys.argv, testRunner = unittest.TextTestRunner(verbosity=2))
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/unittest/main.py", line 94, in __init__
self.parseArgs(argv)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/unittest/main.py", line 149, in parseArgs
self.createTests()
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/unittest/main.py", line 155, in createTests
self.test = self.testLoader.loadTestsFromModule(self.module)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/unittest/loader.py", line 65, in loadTestsFromModule
tests.append(self.loadTestsFromTestCase(obj))
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/unittest/loader.py", line 56, in loadTestsFromTestCase
loaded_suite = self.suiteClass(map(testCaseClass, testCaseNames))
TypeError: __init__() takes exactly 1 argument (2 given)
【问题讨论】:
-
你需要调用超级构造函数吗?
-
使用
setUpClass()而不是__init__()。