是否可以使用arquillian资源进行参数化测试?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了是否可以使用arquillian资源进行参数化测试?相关的知识,希望对你有一定的参考价值。
我正在编写集成测试,我想知道是否可以使用Arquillian进行参数化测试。
在JUnit4
中,我必须指定@RunWith(parameterized.class)
来运行参数化测试,但在这种情况下,baseURL
和browser
未初始化。
@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 和 WildFly 的 JPA 集成测试中注入 EntityManager
是否可以使用 Spring ApplicationContext 中的 bean 参数化 JUnit Jupiter 测试?