【问题标题】:testng preserve-order doesn't work with prioritytestng 保留顺序不适用于优先级
【发布时间】:2023-03-20 23:19:01
【问题描述】:

我有一个 testng 套件文件,它在一个测试中有 10 个类。说

<classes>
 <class name = "Class1">
 <class name = "Class2">
 <class name = "Class3">
</classes>

现在 class1 有 3 个方法,优先级依次为 1、2、3,与 class 2 和 class3 相同。当我在 Jenkins 中使用具有 preserve-order="true" 的套件运行作业时,测试运行为 class1-priority1 test、class2-priority1、class3-priority1、class1-priority2、class2-priority2 等。

我需要先按顺序执行与 class1 相关的所有测试,然后是 class2,然后是 class3。

有人能告诉我为什么会出现这种行为吗?

【问题讨论】:

  • 请注意,版本 6.10 + 中的 TestNG 更改了关于保留顺序和优先级重要性的策略:“订单特征的层次结构(从不太重要到更重要):groupByInstance、preserveOrder、priority、dependsOnGroups、dependOnMethods "

标签: selenium jenkins selenium-webdriver ant testng


【解决方案1】:

默认顺序取决于 Java 反射 API。您可以按您想要的顺序在 下包含方法名称。当文件变大时,这可能很麻烦并且可能看起来很笨拙。不过,在这方面它可能会对您有所帮助。

示例 xml:

<class name="Fully qualified class name without extension">
    <methods>
       <include name="method_1" />
       <include name="method_1" />
            .....
            .....
        <include name="method_N" />
     </methods>
</class>

除了之前的解决方案,您可以使用注解在您的测试方法中添加对测试用例的依赖。但是,更改/修改 xml 比修改代码要好得多。

【讨论】:

  • 我需要一些可以让类中的测试在组中运行的东西。没有从所有课程中获得优先权。
【解决方案2】:

您描述的顺序是预期的。

您应该尝试使用dependOnMethods,而不是优先级。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-04
    • 2011-09-02
    • 2011-10-10
    • 1970-01-01
    • 2020-01-08
    • 2011-10-18
    相关资源
    最近更新 更多