1

有什么方法可以按照编写的顺序执行测试吗?

PyUnit 中发生的情况是,每当我运行测试时,它都会按字母顺序运行。这意味着即使我在 TestB 之后编写了 TestA,TestA 也会在 TestA 之前运行。这给我带来了问题。

import unittest

class SimpleTestCase(unittest.TestCase):

    def testB(self):
        print "Test B"

    def testA(self):
        print "Test A"

我想testB在之前执行testA

4

3 回答 3

1

我使用此处提供的 PyTest 订购插件找到了解决方案。

在 CLI 中尝试py.test YourModuleName.py -vv,测试将按照它们在您的模块中出现的顺序运行(首先是 testB,然后是 testA)

我做了同样的事情,对我来说效果很好。

注意:您需要安装 PyTest 包并导入它。

于 2015-05-07T17:39:31.253 回答
0

如果这些是单元测试,那么它们应该是完全隔离的,因此您应该检查这些测试中的设计缺陷。

如果您出于某种原因确实需要使用特定的顺序,那么您可以通过三种方式在 python 中实现这一点:

  1. 使用 unittest-change 排序方法,描述here
  2. 使用 Proboscis - 使用以下装饰器 @test(depends_on=[list ofdependecies]),在此处找到。
  3. 使用nose -nose 按照它们在模块文件中出现的顺序执行其单元测试。更多信息在这里
于 2013-07-09T09:19:43.960 回答
-1

PyUnit 使用 TestLoaded 收集套件中的所有测试用例并按字母顺序运行它们

例如测试 A 在测试 B 之前运行

如果您想先运行 TEST B,我们必须创建函数并添加 Test B 然后添加 Test A

def suite():
    suite = unittest.TestSuite()
    suite.addTest(SimpleTestCase('test_B'))
    suite.addTest(SimpleTestCase('test_A'))
    return suite      
于 2017-04-08T03:10:10.143 回答