我将 maven 与 testNG 一起使用,但是当我使用“mvn clean”时,它会清理目标文件夹,然后我使用“mvn test”来运行我的测试用例并发送电子邮件,结果我收到错误“java.io. FileNotFoundException”,因为报告是在一切完成后生成的。 我使用了 SuiteListener 和 ListenerTest,还尝试从 AfterSuite 和 AfterClass 发送电子邮件,但我得到了同样的错误,因为报告是在所有注释和侦听器完成后生成的。
TestNG 报告在报告阶段生成。 所有 TestNG 注释都会在执行阶段处理,因此所有使用配置注释(例如
@AfterSuite
(或)@AfterTest
)注释的方法都会在执行阶段执行。
这解释了为什么您会看到异常。
如果您想访问在报告阶段生成的工件,您可以构建 TestNG 侦听器接口的实现
org.testng.IExecutionListener
,该接口将在报告阶段之后、TestNG 退出之前由 TestNG 调用。
但是您需要对报告文件的生成位置做出适当的假设,因为此接口方法即
onExecutionStart()
和 onExecutionFinish()
是无参数的,因此不知道报告在哪里可用。