@RunWith(DataProvider.class)时未执行@Before

时间:2018-11-15 12:15:26

标签: java selenium junit apache-poi

我有一个测试用例类。但是@Before没有被调用。 如何先调用@Beofre并调用@RunWith?

@RunWith(DataProviderRunner.class)
public class Ab extends xyz {

    @DataProvider
    public static Object[][] workBookSheet()
    {
        Object[][] tableArray = ex.getTableArray("Ab");
        return (tableArray);
    }

    @Test
    @UseDataProvider("workBookSheet")
    public void Abc(String TestName, String sDescription)
    {
         }

xyz类具有以下代码以及@Before注释。

protected static ExcelSheet ex;
    static {
        try {
            String Path = getPath();
            ex = new ExcelSheet("sheet.xlsx");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

@Before
{
public static String getPath()
{
}
}

或者Junit中有一种方法可以将DataProvider与RunWith一起使用并先调用@Before。还是有一种创建自定义注释并使用@RunWith添加它们的方法?

1 个答案:

答案 0 :(得分:1)

静态方法不参与多态性

@Before
public String getPath() {