Python单元测试-0.000秒内即可进行0次额外测试

时间:2018-07-13 18:37:23

标签: python unit-testing python-unittest

这是我的测试脚本:

# tests/runner.py
import unittest

# import your test modules
import TC110
import TC112

# initialize the test suite
loader = unittest.TestLoader()
suite  = unittest.TestSuite()

# add tests to the test suite
suite.addTests(loader.loadTestsFromModule(TC110))
suite.addTests(loader.loadTestsFromModule(TC112))

# initialize a runner, pass it your suite and run it
runner = unittest.TextTestRunner(verbosity=3)
result = runner.run(suite)

我在同一目录中有TC110.py和TC112.py,并且正在像这样运行我的测试,

"python -m unittest runner"

我正在得到这样的输出,

test_ldap_login (TC110.TestTC110) ... ok
test_download_artifact (TC112.TestTC112) ... ok

----------------------------------------------------------------------
Ran 2 tests in 1.929s

OK

----------------------------------------------------------------------
Ran 0 tests in 0.000s

OK

为什么我要获得“ Ran 0测试”,如何摆脱它?

1 个答案:

答案 0 :(得分:2)

由于print(print("asdf"))打印额外的None的原因,您将获得额外的“ Ran 0测试”:您正在发出两个测试命令。

您的runner.py脚本从其他文件加载测试并运行它们。如果您只是简单地告诉Python运行脚本(python runner.py),就不会得到虚假的额外输出。

您不是告诉Python运行脚本,而是告诉unittest模块从runner.py加载和运行所有测试。副作用是,这将运行runner.py的正文,并运行所需的测试。 unittest然后加载并运行runner.py中包含的所有0个测试,因为您告诉过它。