Preventing unittest from calling sys.exit()
我无法阻止UnitTest调用sys.exit()。我发现UnitTest导致sys.exit()搜索答案。我将代码修改为
1 | unittest.TextTestRunner().run(unittest.TestLoader().loadTestsFromTestCase(run_tests.Compare)) |
把它放在我的主管道里。我相信唯一改变的是我的测试在一个名为run-tests.py的独立文件中。看起来是这样的
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | import unittest from list_of_globals import globvar value1 = globvar.relerror value2 = globvar.tolerance class Compare(unittest.TestCase): def __init__(self,value1,value2): super(Compare, self).__init__() self.value1 = value1 self.value2 = value2 def runTest(self): self.assertTrue(self.value1 < self.value2) |
当我运行主函数时,收到以下错误
File"/usr/lib64/python2.6/unittest.py", line 550, in loadTestsFromTestCase
return self.suiteClass(map(testCaseClass, testCaseNames))
TypeError: __init__() takes exactly 3 arguments (2 given)
我不明白为什么会发生这个错误,也不知道如何去修复它。任何帮助都将不胜感激。我在Linux上使用的是python 2.6
你的问题是你的单元测试课。
在编写单元测试时,您并不打算重写init——因为init方法用于处理要运行的测试。对于测试配置(如设置变量),您应该编写一个名为
1 2 3 4 5 6 7 8 | class Compare(unittest.TestCase): def setUp(self): self.value1 = globvar.relerror self.value2 = globvar.tolerance def runTest(self): self.assertTrue(self.value1 < self.value2) |
链接问题中的问题是,