unittest后的命令不执行

2024-04-24 01:26:14 发布

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

我在python 3.6中导入了unittest,并这样使用它:

class TestFunc(unittest.TestCase):
        def test_half(self):
            pass
        def test_merge(self):
            pass
        def test_decrypt(self):
            pass
        def test_rank(self):
            pass

if __name__ == "__main__":
    print("printing before calling unittest")
    unittest.main()
    print("printing after calling unittest")

输出如下所示:

 printing before calling unittest
    ....
----------------------------------------------------------------------
Ran 4 tests in 0.001s

OK

Process finished with exit code 0

print的第二个调用,即print("printing after calling unittest"),不执行。 为什么在单元测试之后我什么都做不了?测试后如何继续使用代码


Tags: testselfmaindefpassunittesttestcaseclass
1条回答
网友
1楼 · 发布于 2024-04-24 01:26:14

unittest docs解释如下:

By default main calls sys.exit() with an exit code indicating success or failure of the tests run.

sys.exit()立即退出脚本,因此不会调用最后一行

您可以通过传递exit=False来避免这种行为:

unittest.main(exit=False)

相关问题 更多 >