我正在使用Java类从Excel文件动态生成testNG xml。我正在使用 allure-cli 在测试执行结束时生成魅力报告。
我在以下配置中使用 maven-surefire-plugin 。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.20</version>
<configuration>
<argLine>
-javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar"
</argLine>
</configuration>
<dependencies>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>${aspectj.version}</version>
</dependency>
</dependencies>
</plugin>
当测试由Maven目标和阶段触发时,我能够生成带有完整日志和屏幕快照的诱惑报告,并附有诱惑注释(@ step,@ attachments,@ Story ..)。
但是,当java类触发了测试(生成testNG xml然后运行它)时,我无法获得相同的报告。 生成xml的代码是:-
public static void runTestNGTests(Map<Integer,List<String>> testMap){
TestNG myTestNG = new TestNG();
XmlSuite mySuite = new XmlSuite();
mySuite.setName(suiteName);
List<XmlTest> myTests = new ArrayList<XmlTest>();
for(Map.Entry<Integer, List<String>> map : testMap.entrySet()){
XmlTest myTest = new XmlTest(mySuite);
myTest.setName(map.getKey()+".) web Test : "+map.getValue().get(0) + " on "+ map.getValue().get(1));
myTest.addParameter("Date", map.getValue().get(0));
myTest.setXmlClasses(Arrays.asList(new XmlClass("com.bravura.tests."+map.getValue().get(1))));
myTests.add(myTest);
}
mySuite.setTests(myTests);
List<XmlSuite> mySuites = new ArrayList<XmlSuite>();
mySuites.add(mySuite);
myTestNG.setXmlSuites(mySuites);
myTestNG.run();
}
}
我是否必须在我中包含 javaagent:“ $ {settings.localRepository} / org / aspectj / aspectjweaver / $ {aspectj.version} / aspectjweaver-$ {aspectj.version} .jar testNG.xml ,以在诱惑报告中获取正确的测试体日志?