我正在尝试使用标准库中的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
。
这是有记录的(请参阅本节末尾(,但不容易找到。