下面是我的测试脚本:
# 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
为什么我得到了“运行0测试”,如何摆脱它?
发布于 2018-07-14 02:49:04
您将得到额外的“Run0None
”,其原因与print(print("asdf"))
打印额外测试的原因基本相同:您将发出两个测试命令。
您的runner.py
脚本从其他文件加载测试并运行它们。如果您只是告诉Python运行脚本(python runner.py
),就不会得到虚假的额外输出。
您告诉unittest模块从runner.py
加载并运行所有测试,而不是告诉Python运行脚本。作为一个副作用,这会运行runner.py
的主体,运行您想要的测试。然后,unittest
加载并运行runner.py
中包含的所有0个测试,因为您告诉它这样做。
https://stackoverflow.com/questions/51331089
复制相似问题