我正在尝试从TestNG注释@Test(组="Foo")
获取字符串,然后将其用作我动态生成的文件夹的名称。
如何从TestNG注释中获取文本“Foo”
以便使用它?
我认为读取注释属性(涉及反射和朋友)的更简单的解决方案是使用相同的常量String:
private static final String FOLDER = "Foo";
@Test(groups = FOLDER)
public void test() {
//create the folder named FOLDER
}
您可以从方法
获取注释(您可以从Class. get{,Declared}方法()
方法获取注释):
Test test = method.getAnnotation(Test.class);
如果注释存在,这将是非空的,如果不存在,则为空。如果它非空,您可以在test
上调用group()
方法:
String groups = test.groups();
为什么不使用@BeforeMethod
方法?
@BeforeMethod
public void generateFolderFromGroups(Method m) {
Test test = m.getAnnotation(Test.class);
String[] groups = test.groups();
// generate folder from groups
}
@Test(groups = "Foo")
public void test() {
// the Foo folder will be already created
}