我有一些参数化测试
@ParameterizedTest
@CsvFileSource(resources = "testData.csv", numLinesToSkip = 1)
public void testExample(String parameter, String anotherParameter) {
// testing here
}
万一执行失败,我想忽略所有后续执行。
AFAIK没有内置的机制可以执行此操作。下面的方法确实有效,但是有点黑:
@TestInstance(Lifecycle.PER_CLASS)
class Test {
boolean skipRemaining = false;
@ParameterizedTest
@CsvFileSource(resources = "testData.csv", numLinesToSkip = 1)
void test(String parameter, String anotherParameter) {
Assumptions.assumeFalse(skipRemaining);
try {
// testing here
} catch (AssertionError e) {
skipRemaining = true;
throw e;
}
}
}
与失败的断言(将测试标记为失败)相反,假设会导致测试中止。此外,生命周期从每个方法切换到每个类:
使用此模式时,每个测试类将创建一个新的测试实例。因此,如果测试方法依赖于实例变量中存储的状态,则可能需要在
@BeforeEach
或@AfterEach
方法中重置该状态。
根据您需要该功能的频率,我宁愿使用自定义扩展程序。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句