如何在 REPL 中用 Python 运行单元测试?



我正在尝试使用标准库中的unittest在Python中开发单元测试,我想在REPL中尝试一下。如果我加载了以下代码

import unittest
class TestTrivial(unittest.TestCase):
def test_trivial(self):
self.assertEqual(1 + 1, 2)
self.assertFalse(2 + 2 == 5)

然后我可以在 REPL 中评估以下内容:

unittest.main()

吐出:

Ran 1 test in 0.000s
OK
Process Python finished

问题是它杀死了 REPL。如何在不退出 REPL 的情况下运行它?

> 将exit=False作为参数传递:

unittest.main(exit=False)

unittest.main实际上不是一个函数;它只是unittest.main.TestProgram的另一个名称,其__init__方法最终调用runTests方法,该方法以以下行结尾:

if self.exit:
sys.exit(not self.result.wasSuccessful())

self.exit设置为False可防止调用sys.exit

这是有记录的(请参阅本节末尾(,但不容易找到。

最新更新