我有一个注释@Test
的方法,并且在优先级之后设置了它的priority=1
,data-Provider注释,但是当我运行我的类时,它会跳过具有priority=1
的方法并执行另一种方法是priority=2
。
我想我没有正确地做到这一点。请帮忙。
答案 0 :(得分:2)
@Test(priority = 1, dataProvider = "...")
@Test(dataProvider = "...", priority = 1)
设置priority
和dataProvider
应按预期工作。以下是一个示例测试来证明:
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import static org.testng.Assert.assertEquals;
public class ExampleTest {
private int runFirstInvocationCount = 0;
@Test(priority = 2)
public void runSecond() {
assertEquals(runFirstInvocationCount, data().length);
}
@DataProvider
public static Object[][] data() {
return new Object[][]{
{/* your data values here */},
{/* your data values here */},
{/* your data values here */}
};
}
@Test(priority = 1, dataProvider = "data")
public void runFirst(/* your data parameters here */) {
runFirstInvocationCount++;
}
}