gpt4 book ai didi

java - 指定 dependsOnMethods 时,testng 未按优先顺序运行

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:17:32 30 4
gpt4 key购买 nike

每当我们在@Test注解方法上指定prioritydependsOnMethods时,测试方法的执行顺序并不是按照优先级.为什么会这样?这是演示问题的测试类:

package unitTest.TestNGTestCases;

import org.testng.annotations.Test;

public class TestNGTest1 {
@Test(priority=1)
public void t1()
{
System.out.println("Running 1");
}
@Test(priority=2,dependsOnMethods="t1")
public void t2()
{
System.out.println("Running 2");
}
@Test(priority=3,dependsOnMethods="t2")
public void t3()
{
System.out.println("Running 3");
}
@Test(priority=4)
public void t4()
{
System.out.println("Running 4");
}
}

实际输出:

Running 1
Running 4
Running 2
Running 3

===============================================
All Tests Suite
Total tests run: 4, Failures: 0, Skips: 0
===============================================

预期输出:

Running 1
Running 2
Running 3
Running 4

===============================================
All Tests Suite
Total tests run: 4, Failures: 0, Skips: 0
===============================================

测试执行的顺序应该是t1、t2、t3、t4。为什么 t4 在 t1 之后执行,而 t2 和 t3 的优先级高于 t4?

TIA

最佳答案

所有独立方法(不具有@dependsOnMethods 依赖项)将首先执行。然后将执行具有依赖性的方法。如果在此排序后执行顺序仍不明确,则优先级就会出现。

这是排序方案:

  1. 执行所有独立方法(没有@dependsOnMethods注解的方法)
  2. 如果此顺序存在歧义,请使用优先级解决独立方法的歧义
  3. 按照依赖顺序执行依赖方法
  4. 如果此排序中存在歧义,请使用优先级来解决依赖方法的歧义
  5. 如果仍然存在歧义(由于未使用优先级或两种具有相同优先级的方法),请根据字母顺序对它们进行排序。

现在所有歧义都解决了,因为没有两个方法可以具有相同的名称。

关于java - 指定 dependsOnMethods 时,testng 未按优先顺序运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24423092/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com