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