我正在查看类似的问题,但找不到我的问题的答案。
我在派生自 unittest.TestCase 的 python 类中编写了测试
class TestEffortFormula(unittest.TestCase)
我需要给测试下命令(请不要不要告诉我我不应该依赖测试的命令,我只是这样做)。
在我需要对测试下命令之前,我用来运行测试的命令是:
unittest.main(testRunner=TeamcityTestRunner())
然后我想让订单消失,所以我尝试了以下方法:
loader = unittest.TestLoader()
loader.sortTestMethodsUsing(None)
loader.loadTestsFromTestCase(TestEffortFormula)
suite = loader.suiteClass()
但从这里我不知道如何运行测试,特别是 testRunner=TeamcityTestRunner()
和以前一样。
感谢您的帮助
最佳答案
选项 1。
一个解决方案(作为解决方法)是 given here - 建议在编号方法 step1
、step2
等中编写测试,然后通过 dir(self)
收集和存储它们并生成它们到一个 test_
方法,每个方法都 try
。
不理想,但符合您的期望。每个测试序列必须是一个单独的 TestClass(或调整那里给出的方法以具有多个序列生成方法)。
选项 2。
另一种解决方案,也在链接的问题中,是您将测试命名为按字母顺序+数字顺序排序,以便它们按该顺序执行。
但在这两种情况下,都编写整体测试,每个测试都在自己的测试类中。
附言我同意所有关于不应以这种方式进行单元测试的评论;但在某些情况下,单元测试框架(如 unittest
和 pytest
)习惯于进行集成测试,这需要模块化的独立步骤才能发挥作用。另外,如果 QA 不能影响 Dev 编写模块化代码,则必须完成这些事情。
关于python - python unittest中的测试顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30286268/