【问题标题】:How to run a testsuite with unittest.main [duplicate]如何使用 unittest.main 运行测试套件 [重复]
【发布时间】:2012-11-12 11:45:43
【问题描述】:

可能重复:
Python unittest - invoke unittest.main() with a custom TestSuite

我有一个使用例如创建的测试套件

suite = unittest.TestSuite()
suite.addTest(module1.MyTest("test_simple"))
suite.addTest(module2.MyTest("test_simple"))

并且需要使用unitest.main() 开始这些测试。当只尝试unitest.main(suite) 时,根本没有运行任何测试。如何在不调用 test.TextTestRunner 或类似名称的情况下使用 unittest.main() 执行此操作?

【问题讨论】:

  • 你需要一个跑步者来运行测试。你为什么不想用一个?
  • 当我在代码中创建单个 TestCase 并调用 unittest.main() 时,我不需要跑步者。
  • @Piotr 不,它不是重复的。给定链接中的问题类似,但从未(正确)回答。或者我不明白答案。
  • 没有回答的事实并不能改变两人问同样的事实。
  • 同意。但是问题大致相同的事实并不能改变仍然没有回答的事实。

标签: python unit-testing python-2.7


【解决方案1】:

您不能将 TestSuite 传递给 main,请查看 unittest.main.TestProgram 的构造函数(实际上是 unittest.main)以及此类的工作原理。如果有的话,第一个参数是模块名称,而不是测试套件。

main() 实际上从sys.argv 获取它的参数,因为它实际上是打算从命令行使用而不是从程序中使用。为了方便起见,这样做很常见。

【讨论】:

  • 这是否意味着,我想要的东西是不可能的(或者,至少,会非常偶然地实现)?
  • 这不是 unittest.main 的用途,您最好使用 testrunner。
  • 好的,那我得找另一种处理方式了。谢谢
  • 您也可以考虑回答原始问题。谢谢。
  • 完成:原始问题得到了 mata 的相同回答
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-02-11
  • 2015-03-09
  • 2011-10-15
  • 1970-01-01
  • 2015-08-27
  • 2012-12-04
  • 2020-02-27
相关资源
最近更新 更多