Pytest 从不同的测试用例文件中排序

2023-12-30

您好,我使用 pytest 并在文件夹中有以下 2 个 py 文件。

test_abc.py如下:

class MyTest(unittest.TestCase):
    @classmethod
    def setup_class(cls):
        cls.a = 10

    @classmethod
    def teardown_class(cls):
        cls.a = 20

    @pytest.mark.run(order=2)
    def test_method1(self):
       logging.warning('order2 in test_abc')
       assert (10,self.a)    # fail for demo purposes

    @pytest.mark.run(order=1)
    def test_method2(self):
        logging.warning('order1 in test_abc')
        assert 0, self.db   # fail for demo purposes

test_sample2.py 如下,

class MyTest1(unittest.TestCase):
    @classmethod
    def setup_class(cls):
        cls.a = 10

    @classmethod
    def teardown_class(cls):
        cls.a = 20

    @pytest.mark.run(order=2)
    def test_mtd1(self):
       logging.warning('order2 in test_samp')
       assert (10,self.a)    # fail for demo purposes

    @pytest.mark.run(order=1)
    def test_mtd2(self):
        logging.warning('order1 in test_samp')
        assert 0, self.db   # fail for demo purposes

现在我使用命令运行:

py.test --tb=long --junit-xml=results.xml --html=results.html -vv

这里发生的情况是两个测试用例文件中的 test_method2 首先运行(因为它已作为 order1 给出),然后 test_method1 从两个文件运行(因为它已作为 order 2 给出)

所以我在这里注意到的是,排序是针对测试运行的总体排序,而不是针对单个类/文件

有什么办法可以解决这个问题吗?现在,我对所有文件都使用订购号,例如我给出的第一个文件(1,2),然后在下一个文件中我给出的(3,4),它工作正常。

但我不想只在我需要的少数地方订购所有测试课程。是否有任何钩子说 pytest 仅查看特定文件中的排序?


我假设您正在使用 pytest-ordering 插件 - 如果测试中只有特定区域需要排序,您可以使用相对排序:

@pytest.mark.run(after='test_second')
def test_third():
    assert True

def test_second():
    assert True

@pytest.mark.run(before='test_second')
def test_first():
    assert True

参考: (http://pytest-ordering.readthedocs.org/en/develop/#relative-to-other-tests http://pytest-ordering.readthedocs.org/en/develop/#relative-to-other-tests)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Pytest 从不同的测试用例文件中排序 的相关文章

随机推荐

  • Railo、Open Bluedragon 和 Adob​​e Coldfusion 之间有哪些显着差异?

    尝试捕捉notable实现之间的差异 Adobe ColdFusion http www adobe com products coldfusion Railo http www getrailo com 打开蓝龙 http www ope
  • 为什么我被迫在 python 中使用 os.path.expanduser ?

    我确信这是故意的 所以有人可以解释这种行为的理由 Python 2 7 2 default Oct 13 2011 15 27 47 GCC 4 1 2 20080704 Red Hat 4 1 2 44 on linux2 Type he
  • 如何更改 Netbeans 中 JTabbedPane 中选项卡的顺序?

    希望这应该是一个非常简单的问题 在 Netbeans 中 使用 GUI Swing 编辑器 我在 JTabbedPane 中有四个面板 选项卡 4 我想坐在选项卡 1 现在所在的位置 但我最后创建了它 所以默认情况下它位于列表的末尾 如何在
  • 在嵌套 lambda 中捕获通用可调用对象 - 始终向前?

    我的代码库中有各种函数 它们采用通用的可调用对象 并在调用它之前将其传递给一系列嵌套的 lambda 例子 template
  • ODBC v Libpq:PostgreSQL 的 C 库

    我将使用 C 库来连接和使用 PostgreSQL 数据库 我想知道 ODBC 和 Libpq 的优缺点是什么 据我所知 libpq 似乎更快 但我无法得到任何明确的答案或基准 另外 是否有任何其他库可能比 ODBC Libpq 更好 如果
  • GNU gdb 无法进入模板函数 (OS X Mavericks)

    我已经安装了gdb 7 7 来自 GNU 来源 在 OS X Mavericks 10 9 2 下 我对其进行了代码签名 因此每当我调试时它都可以正常工作c 不包含模板的文件 但是 它无法单步执行模板函数 可以单步执行常规函数 但无法单步执
  • Bootstrap 网格中列行的垂直对齐

    假设您有一个使用 Twitter Bootstrap 的两列布局 您希望其中特定的行彼此垂直对齐 div class container div class row div class col sm 6 h2 Column 1 h2 p O
  • 将一列类似 GeoJSON 的字符串转换为 GeoPandas 中的几何对象

    我在 GeoPandas 数据框中有一列 其中包含这样的字符串 type Point coordinates 37 55 55 71 或这个 type MultiPoint coordinates 37 6 55 4 它也可以是多边形或任何
  • iOS - 使用自定义加密密钥保护文件?

    昨天我发布了有关保护文件的问题 保护应用程序沙箱 https stackoverflow com questions 4595955 protecting the app sandbox 如前所述 如果用户在 iPad 上有密码 这似乎可以
  • jQuery:获取标题和 href 值作为变量

    我有一个带有标题和 href 值的链接列表 我希望能够单独获取这些值 但我总是获取第一个链接的值 这是为什么 在这里看我的小提琴 http jsfiddle net FaNdV 正如您所看到的 单击任何链接时 您始终会从第一个链接获取值 我
  • 带有自定义图像的 UISwitch

    我需要通过更改背景颜色以及旋钮 支架 图像来自定义 UISwitch 如下图所示 是否可以在不拒绝应用程序的情况下自定义 UISwitch 提前致谢 有一个onTintColor您可以在 UISwitch 上设置的属性 如果您还需要更改手柄
  • 根据布尔列升序或降序

    This is the table structure in PostgreSQL 10 尽管 日期 是一个int 它代表 yyyy mm dd 日期 我正在尝试写一个SELECT按日期排序 当 BC true 时desc 因此日期将按正确
  • Flutter:使用不包含 Bloc 类型的上下文调用 blocprovider.of()

    我是 flutter 新手 我想使用 BLoc 实现一个简单的登录屏幕 没有构建错误 但在运行时收到以下错误 使用不包含 LoginBloc 类型的 Bloc 的上下文调用 blocprovider of My Code class Log
  • Julia 中的字典帮助 - 从文本文件创建字典

    我正在尝试根据 Julia 中文本文件的内容创建一个库 以用于生物信息学问题 该文件的格式如下 UUU F CUU L AUU I GUU V UUC F CUC L AUC I GUC V 我想制作一本字典 其中键是 3 个字母部分 密码
  • 在表单之间传递数据

    我的项目中有 3 个 winform Form3 上有一个复选框 我想要做的是单击此复选框 然后在退出表单时对 Form1 中的复选框进行相同的检查 无论是否选中 我现有的代码如下 但它不起作用 我是否在某个地方错过了一个技巧 谢谢 For
  • Nat 列表在 0 到 2 之间的类?

    使用 Peter Neyens 的帮助answer https stackoverflow com a 39159167 409976 我尝试创建一个X类仅包含Nat小于或等于2 import shapeless import shapel
  • MongoDB 与 Mongoose 限制子文档

    对于 MongoDB 和 Mongoose 我是个菜鸟 所以请原谅我 我将 Node 与 Express 以及 Mongoose 一起使用 我有一个包含大量子文档的文档 以至于我的服务器在尝试加载所有子文档时内存不足 所以我想选择子文档的最
  • 无法解决排序规则冲突?

    我遇到了这个错误 但我不知道如何修复它 无法解决 Arabic CI AS 和 Arabic CI AS 之间的排序规则冲突 等于操作中的 SQL Latin1 General CP1 CI AS 注意 我已经从数据库选项更改了排序规则 g
  • mvc3 验证检查属性值是否不同

    在 MVC3 中 您可以向模型添加验证以检查属性是否匹配 如下所示 public string NewPassword get set Compare NewPassword ErrorMessage The new password an
  • Pytest 从不同的测试用例文件中排序

    您好 我使用 pytest 并在文件夹中有以下 2 个 py 文件 test abc py如下 class MyTest unittest TestCase classmethod def setup class cls cls a 10