我正在使用JUnit5,并且想用一组数据上的有序方法构造我的测试类。 到目前为止,我已经研究了嵌套测试,但似乎无法获得所需的输出
反正有这样做吗?有人可以指出正确的方向,因为我已经解决了几个小时。
@ParameterizedTest
@MethodSource("getTestData")
@Order(1)
void shouldGetTestCaseNumber(Map<Object, Object> excelData) {
System.out.println(excelData.get("Test Case "));
}
@ParameterizedTest
@MethodSource("getTestData")
@Order(2)
void shouldGetEntitlement(Map<Object, Object> excelData) {
System.out.println(excelData.get("Entitlement"));
}
Collection<Arguments> getTestData() throws IOException {
TestDataService testDataService = new TestDataService();
List<Arguments> data = new ArrayList<>();
for(Object[] d: testDataService.getData()){
data.add(Arguments.of(d));
}
return data;
}
现在,输出将包含shouldGetTestCaseNumber()的所有测试用例,然后是shouldGetEntitlement(),但我想要一个测试用例作为
测试用例1
测试用例2
就像我说的那样,如果有人可以将我指向正确的方向,并且我可以从那里走出去,我就是生命
答案 0 :(得分:1)
否,当前功能集无法实现。
https://github.com/junit-team/junit5/issues/871上还有一个未解决的问题……还有很多相关问题。
您可以求助于动态测试并构建自己的轻量级测试结构。但是您将失去参数化测试提供的所有功能。
https://junit.org/junit5/docs/current/user-guide/#writing-tests-dynamic-tests