在 TestNG 中设置测试方法优先级 XML
Setting test method priority in TestNG XML
问题:如何在 TestNG XML 中设置方法优先级,而不是将其添加到带有优先级标签的 class.method 级别?
我试图找到这个问题的答案,但我无法在任何地方找到这个具体点。
用例:我可以以编程方式生成 TestNG XML 并调用测试
基于作为数据源写入外部文件中的给定方法名称的方法。
我认为有不止一种方法可以做到这一点。使用实现 Annotation Transformer 的侦听器就是其中之一。你可以这样做:
public class SetPriorityListener implements IAnnotationTransformer {
@Override
public void transform(final ITestAnnotation annotation, final Class testClass,
final Constructor constructor, final Method method) {
if ("myTestName".equals(method.getName())) {
annotation.setPriority(getTestPriority());
}
}
private int getTestPriority() {
//logic to get priority for this test
return 0;
}
}
您可以在官方文档中阅读更多关于 AnnotationTransformer 的信息:http://testng.org/doc/documentation-main.html#annotationtransformers
问题:如何在 TestNG XML 中设置方法优先级,而不是将其添加到带有优先级标签的 class.method 级别?
我试图找到这个问题的答案,但我无法在任何地方找到这个具体点。
用例:我可以以编程方式生成 TestNG XML 并调用测试 基于作为数据源写入外部文件中的给定方法名称的方法。
我认为有不止一种方法可以做到这一点。使用实现 Annotation Transformer 的侦听器就是其中之一。你可以这样做:
public class SetPriorityListener implements IAnnotationTransformer {
@Override
public void transform(final ITestAnnotation annotation, final Class testClass,
final Constructor constructor, final Method method) {
if ("myTestName".equals(method.getName())) {
annotation.setPriority(getTestPriority());
}
}
private int getTestPriority() {
//logic to get priority for this test
return 0;
}
}
您可以在官方文档中阅读更多关于 AnnotationTransformer 的信息:http://testng.org/doc/documentation-main.html#annotationtransformers