是否可以使用arquillian资源进行参数化测试?

时间:2018-01-10 07:41:59

标签: junit jboss-arquillian

我正在编写集成测试,我想知道是否可以使用Arquillian进行参数化测试。

JUnit4中,我必须指定@RunWith(parameterized.class)来运行参数化测试,但在这种情况下,baseURLbrowser未初始化。

@RunWith(Parameterized.class)
public class Junit4IT {
    @Parameters
    public static List<String> data() {
        return Arrays.asList("URL1", "URL2", "URL3");
    }

    @ArquillianResource
    private URL baseURL;

    @Drone
    private WebDriver browser;

    private String url;

    public Junit4IT(String url) {
        this.url = url;
    }

    @Test
    public void test() {
        browser.get(baseURL + "login.xhtml");
    }

    @Test
    public void parameterizedTest() {
        browser.get(baseURL + url);
    }
}

JUnit5中,当我使用注释@Test运行测试时,一切正常。

变量已初始化,但当我将它们与@ParameterizedTest一起使用时,它们是NULL。

@RunWith(Arquillian.class)
public class Junit5IT {
    @ArquillianResource
    private URL baseURL;

    @Drone
    private WebDriver browser;

    @Test
    public void test() {
        browser.get(baseURL + "login.xhtml");
    }

    @ParameterizedTest
    @ValueSource(strings = { "URL1", "URL2", "URL3" })
    public void parameterizedTest(String url) {
        browser.get(baseURL + url);
    }
}

可以使用arquillian.xml文件中的配置手动初始化变量而不使用@RunWith (Arquillian.class)吗?

1 个答案:

答案 0 :(得分:0)

您可以尝试使用JUnit规则进行参数化测试来查看this