一个指定单元测试执行顺序的Nose插件 | 您所在的位置:网站首页 › ug插件imachining › 一个指定单元测试执行顺序的Nose插件 |
我有一个愿望,希望使用Nose来做一个过线的集成测试套件。然而,其中一些测试的执行顺序是很重要的。 这就是说,我想我将抛出一个快速的插件,用我希望执行的顺序来装饰一个测试。https://gist.github.com/Redsz/5736166 def Foo(unittest.TestCase): @step(number=1) def test_foo(self): pass @step(number=2) def test_boo(self): pass通过查看内置插件,我曾想,我可以简单地覆盖loadTestsFromTestCase,并通过装饰的 "步骤编号 "来排列测试。 def loadTestsFromTestCase(self, cls): """ Return tests in this test case class. Ordered by the step definitions. """ l = loader.TestLoader() tmp = l.loadTestsFromTestCase(cls) test_order = [] for test in tmp._tests: order = test.test._testMethodName func = getattr(cls, test.test._testMethodName) if hasattr(func, 'number'): order = getattr(func, 'number') test_order.append((test, order)) test_order.sort(key=lambda tup: tup[1]) tmp._tests = (t[0] for t in test_order) return tmp这个方法按照我希望的顺序返回测试,但是当测试被鼻子执行时,它们并没有按照这个顺序执行? 也许我需要把这个订购的概念移到不同的地方? 更新:按照我的评论,这个插件实际上是按预期工作的。我错误地相信了pycharm的测试报告。测试是按预期运行的。与其删除这个问题,我想我应该把它留下来。 |
CopyRight 2018-2019 实验室设备网 版权所有 |