按顺序运行PyUnit测试

问题描述 投票:1回答:3

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

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

import unittest

class SimpleTestCase(unittest.TestCase):

    def testB(self):
        print "Test B"

    def testA(self):
        print "Test A"

我希望testBtestA之前执行。

python python-unittest
3个回答
1
投票

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

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

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

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


0
投票

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

如果你真的需要某些原因,使用特定的顺序,那么你有三种方法可以在python中实现这个目的:

  1. 使用unittest - 更改排序方法,描述here
  2. 使用Proboscis - 使用以下装饰器@test(depends_on = [依赖列表]),找到qazxsw poi。
  3. 使用nose-nose按照它们在模块文件中出现的顺序执行单元测试。更多信息here

-1
投票

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

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

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

here
© www.soinside.com 2019 - 2024. All rights reserved.