Python unittest - 使用自定义 TestSuite 调用 unittest.main()
我正在用Python写单元测试。现在我没有使用任何自动测试发现的功能,而是手动把TestCases
组合成一个TestSuite
。
我可以用unittest.TextTestRunner().run(suite)
来运行这些测试,但我想用unittest.main()
来运行,这样我就可以使用命令行选项,比如-v
或者--failfast
。文档上说unittest.main()
可以接受一个TestRunner的选项。
那么,我该如何把我的TestSuite
转换成一个TestRunner
呢?
2 个回答
-4
除了确保你的单元测试模块里有这个以外,别做其他的事情。
if __name__ == '__main__':
unittest.main(failfast=True)
http://docs.python.org/library/unittest.html#unittest.main
来自文档的内容...
unittest.main( failfast=True, testRunner=unittest.TextTestRunner )
2
这段内容是关于如何使用unittest.main来运行测试集的一个问题的重复回答。
你不能把一个TestSuite
直接传给main,看看unittest.main.TestProgram
的构造函数(其实unittest.main
就是这个东西)以及这个类是怎么工作的。它的第一个参数如果有的话,是模块名,而不是测试集。
main()
实际上是从sys.argv
获取参数的,因为它本来是设计用来从命令行运行的,而不是在程序内部调用。这样做只是为了方便,大家都这么做。