我们可以在同一个括号中包含testng @priority和@dataprovider吗?

时间:2016-02-19 12:14:54

标签: testng-dataprovider

我有一个注释@Test的方法,并且在优先级之后设置了它的priority=1,data-Provider注释,但是当我运行我的类时,它会跳过具有priority=1的方法并执行另一种方法是priority=2

我想我没有正确地做到这一点。请帮忙。

1 个答案:

答案 0 :(得分:2)

  1. 注释属性的顺序无关紧要。即以下内容相同:
    • @Test(priority = 1, dataProvider = "...")
    • @Test(dataProvider = "...", priority = 1)
  2. 设置prioritydataProvider应按预期工作。以下是一个示例测试来证明:

    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++;
        }
    }