作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我创建了一个方法级java自定义注释,如下所示
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface Test {
public String id() default "0";
}
测试类:
public class test {
@Test
@Test(id = "231")
public void test_section(){
Assert.assertTrue(false);
}
}
我能够使用下面的代码行使用 id 的值
result.getMethod().getConstructorOrMethod().getMethod().getAnnotation(Test.class).id();
现在我想创建一个类级别的自定义java注释,如下所示
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface section {
public String Name() default "0";
}
并在我的测试类中使用相同的注释,并在 testng 监听器 ITestListener onTestStart 方法中获取 Name 的值,就像我使用 testng 执行测试用例一样,下面是测试类
@section(Name="u_id")
public class testcustom {
@Test
public void test_section(){
Assert.assertTrue(false);
}
}
我无法获取节的值,如何获取类级别使用的节注释中的名称值?
最佳答案
只要看看 API,就像这样
void onTestStart(ITestResult result) {
section annotation = result.getTestClass().getRealClass().getAnnotation(section.class);
if (annotation != null) {
// do something with annotation.Name()
}
}
应该可以工作(请注意,Java 命名约定意味着它应该是 Section
和 name()
)。
关于java - 如何在testng监听器java中使用自定义类注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43745318/
我是一名优秀的程序员,十分优秀!