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

问题描述 投票:1回答:1

我正在编写集成测试,我想知道是否可以使用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)

junit jboss-arquillian
1个回答
0
投票

您可以尝试使用JUnit Rules for Parameterized Tests查看this

© www.soinside.com 2019 - 2024. All rights reserved.