testng - 在以编程方式运行 testNG 测试时使用 aspectJweaver
问题描述
我正在使用 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();
}
}
我是否必须在我的 testNG.xml 中包含javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar以获得正确的测试体日志报告?
解决方案
mySuite.addListener("path.to.your.listener");
此解决方案无需步骤即可为您提供报告。找不到收集步骤的解决方案。
推荐阅读
- airflow - 开始时间/结束时间的气流 ts 宏
- javascript - 带有 [对象对象] 的文本区域
- c# - 使用 Godaddy 共享主机在 Asp.net 核心 MVC 中发送邮件问题
- php - 带有 PHP artisan 和 ngrok 的 Botman Studio 本地图像附件
- windows - Windows 中的路径长度限制 - 没有任何效果
- java - 使用 where 子句使用 spring JDBC 从数据库中查找记录
- r - 如何在 R 中按邮政编码创建肯塔基地图?
- python - Python Selenium:从给定网站中查找并填写 Dropbox 和文本框字段
- stm32 - libopencm3 STM32G0:GPIO输入不起作用
- flutter - Flutter 如何实现这种类型的下拉菜单,见附图