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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了是否可以使用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)

答案

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

以上是关于是否可以使用arquillian资源进行参数化测试?的主要内容,如果未能解决你的问题,请参考以下文章

使用arquillian测试远程客户端jndi查找

无法在使用 Arquillian 和 WildFly 的 JPA 集成测试中注入 EntityManager

Openliberty arquillian 测试

是否可以使用 Spring ApplicationContext 中的 bean 参数化 JUnit Jupiter 测试?

如何为 Arquillian UI 测试重置数据库

软件测试攻略(十五):Jmeter进阶_响应断言、参数化