我得到以下错误
TypeError: __init__() takes exactly 1 argument (2 given)
当我运行以下python时:
^{pr2}$有什么想法吗?我需要运行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)
Read the docs for the class you're extending;
unittest.TestCase
的初始值设定项接受一个可选参数,如果您不接受它,并且它被传递,您将得到这个错误。在很少有好的理由为
TestCase
重写__init__
;测试设置是在setUp
中完成的(每个测试运行一次,这样从一个测试更改的状态不会影响另一个测试的行为),而不是__init__
(总共运行一次)。您将继承__init__
,并且由于您的__init__
没有做任何额外的事情,所以拥有它是愚蠢的。在如果确实有合法的用途,请确保将初始化委托给链上:
当然,如注释中所述,您可以有单独的类设置(从Python 2.7/3.2起)using ^{} ,因此根本不必处理
__init__
的挑剔。在相关问题 更多 >
编程相关推荐