我在每个@Test上都使用了allure2 @Tmslink(“1234”)注释进行测试 . 所以,我需要获得@TmsLink值并在我的测试中使用它 . 我在扩展中有注释值,但我如何提供它来测试?
public class TmsLink implements BeforeTestExecutionCallback {
private String tmsLink;
@Override
public void beforeTestExecution(ExtensionContext context) {
findAnnotation(context.getElement(), TmsLink.class).ifPresent(link -> this.tmsLink = link.value());
}
public String getTmsLink() {
return tmsLink;
}
}
@ExtendWith(TmsLink .class)
public abstract class Tests {
}
使用Junit4它只是:
@Rule
public TmsLink extension = new TmsLink();
extension.getTmsLink();
1 回答
JUnit Jupiter还支持通过使用
@RegisterExtension
注释测试类中的字段以编程方式注册扩展:有关详细信息,请参阅用户指南https://junit.org/junit5/docs/current/user-guide/#extensions-registration-programmatic
或者让您的扩展也实现
ParameterResolver
并将TmsLink
作为参数注入您的测试方法参数 . 查找详细信息和链接在https://junit.org/junit5/docs/current/user-guide/#extensions-parameter-resolution的示例