python unittest中的测试顺序

sla*_*hms 10 python unittest2 python-unittest

我正在寻找类似的问题,我无法找到问题的答案.

我在一个派生自unittest.TestCase的python类中编写了测试

class TestEffortFormula(unittest.TestCase)
Run Code Online (Sandbox Code Playgroud)

我需要给一个为了测试(请不要告诉我,我不应该依赖测试的顺序,我只是做).

在我需要命令测试之前,我用来运行测试的命令是:

unittest.main(testRunner=TeamcityTestRunner())
Run Code Online (Sandbox Code Playgroud)

然后我想让订单消失,所以我尝试了以下内容:

loader = unittest.TestLoader()
loader.sortTestMethodsUsing(None)
loader.loadTestsFromTestCase(TestEffortFormula)
suite = loader.suiteClass()
Run Code Online (Sandbox Code Playgroud)

但从这里我不知道如何运行测试,特别是testRunner=TeamcityTestRunner() 像以前一样.

感谢您的帮助

ane*_*oid 5

选项1.

一个解决这个(作为一种变通方法)中的溶液在此给出 -这表明写入编号方法测试step1,step2等等,然后收集,并通过将它们存储dir(self)和它们产生一个test_方法,其try各为s.

不理想,但做你期望的.每个测试序列必须是单个TestClass(或者使那里给出的方法适应多个序列生成方法).

选项2.

另一个解决方案,也在链接的问题中,是您按字母顺序命名测试+数字排序,以便它们按顺序执行.

但在这两种情况下,都要编写单片测试,每个测试都在自己的测试类中.

PS我同意所有评论说单元测试不应该这样做; 但有些情况下,单元测试框架(如unittestpytest)习惯于进行集成测试,这需要模块化的独立步骤才能有用.此外,如果QA无法影响Dev编写模块化代码,则必须完成这些事情.