单元测试后的命令不执行

Ede*_*ont 3 python unit-testing execution

我在 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")
Run Code Online (Sandbox Code Playgroud)

输出如下所示:

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

OK

Process finished with exit code 0
Run Code Online (Sandbox Code Playgroud)

printie的第二次调用print("printing after calling unittest")不会执行。为什么单元测试后我什么也做不了?测试后如何继续使用代码?

Dan*_*man 5

单元测试文档对此进行了解释:

默认情况下,带有指示测试运行成功或失败的退出代码的main调用。sys.exit()

sys.exit()立即退出脚本,因此您的最后一行永远不会被调用。

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

unittest.main(exit=False)
Run Code Online (Sandbox Code Playgroud)