阻止unittest调用系统出口()

2024-06-16 10:52:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我无法阻止Unittest呼叫系统出口(). 我发现Unittest causing sys.exit()正在搜索答案。我将代码修改为

unittest.TextTestRunner().run(unittest.TestLoader().loadTestsFromTestCase(run_tests.Compare))

把它放在我的主管道里。我相信我唯一改变的是我的测试在一个名为run的单独文件中_测试.py. 看起来是这样的

^{pr2}$

当我运行我的主函数时,我收到以下错误

{cd1}

我不明白为什么会出现这个错误,也不知道如何去修正它。任何帮助都将不胜感激。我在linux上使用python2.6


Tags: run答案代码系统错误sysexittests
1条回答
网友
1楼 · 发布于 2024-06-16 10:52:31

你的问题在于你的单元测试类。在

当编写单元测试时,并不意味着重写init,因为init方法用于处理要运行的测试。对于测试配置,例如设置变量,您应该编写一个不带参数的setUp方法。例如:

class Compare(unittest.TestCase):

    def setUp(self):
        self.value1 = globvar.relerror
        self.value2 = globvar.tolerance

    def runTest(self):
        self.assertTrue(self.value1 <  self.value2)

链接问题中的问题是,unittest.main在所有测试运行后退出python。这并不是用户想要的结果,因为他们在IPython笔记本上运行测试,IPython笔记本本质上是一个增强的解释器。因此,它也被sys.exit终止。也就是说,exit在测试外部调用,而不是在测试中调用。我假设正在测试的函数调用exit。在

相关问题 更多 >