【问题标题】:TestNG Report is sending previous reportTestNG 报告正在发送以前的报告
【发布时间】:2021-12-23 15:25:15
【问题描述】:

我使用了这个非常简单的代码,并尝试在@AfterSuite 注释下发送可通过电子邮件发送的报告,但问题在于它发送的是旧的(以前的)报告。不是最新的。注意我也试过email方式下的thread.sleep。

package testOWC;

import org.testng.annotations.AfterClass;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.AfterSuite;
import org.testng.annotations.AfterTest;
import org.testng.annotations.Test;
import java.io.IOException;

import javax.mail.MessagingException;

import java.awt.AWTException;

public class All_TestCases {
  
@SuppressWarnings({ })
@Test (priority =1)
public void RequiredFieldsOnly() throws InterruptedException, IOException, AWTException {
  RequiredFieldsOnly.testCase();
}
  
@Test (priority =2)
public void Yourself() throws InterruptedException, IOException, AWTException {
  Yourself.testCase();
  
}

@Test (priority =3)
public void Yourself_Representative() throws InterruptedException, IOException, AWTException {
  Yourself_Representative.testCase();
  
}

@Test (priority =4)
public void Representative_YourselfNotConf() throws InterruptedException, IOException, AWTException {
  Representative_YourselfNotConf.testCase();
  
}

@Test (priority =5)
public void Representative_YourselfConf() throws InterruptedException, IOException, AWTException {
  Representative_YourselfConf.testCase();
  
} 

@AfterSuite
public void email() throws MessagingException, InterruptedException {
  
  Email_Invoke.main(null);
}
}

【问题讨论】:

  • 请分享发送邮件的代码Email_Invoke.main(null)
  • 感谢@NandanA 的回复。代码没问题。问题是我需要在测试用例执行后运行它。这就是问题所在。
  • 您是否正在刷新范围报告?
  • ExtentReports extent = new ExtentReports(ExtentReportsLocationFileName, true); 和 extent.flush(); 在发送报告之前执行此操作。

标签: java selenium testng


【解决方案1】:

我遇到了同样的问题,直到运行完成才生成报告。我通过以下方式解决了它:测试由 Jenkins 作业(或 TFS 代理等)运行,当作业完成时,我有另一个作业收集存档并将其发送到邮件列表。

第二个选项是在@After 方法中自己触发TestNg 报告,因为报告仅在之后触发。这是我自己没有尝试过的,但应该可以。

【讨论】:

    【解决方案2】:

    所有Hooks完成后会生成报告。

    • @BeforeSuite
    • @BeforeTest
    • @BeforeClass
    • @BeforeMethod
    • @Test
    • @AfterMethod
    • @AfterClass
    • @AfterTest
    • @AfterSuite

    请编写单独的程序发送邮件。

    方法:

    1. 创建 .bat 文件
    2. 第一个命令应该是 TestNG 执行
    3. 第二个命令应该是你的邮件程序

    示例 bat 文件:

    mvn test && java -jar zippingAndEmail.jar

    【讨论】:

    • 我已经尝试过 bat 文件,但问题是如果您从 cmd 运行测试,则不会生成报告。有必要从 IDE 本身执行案例以生成报告 bcoz TestNG 在此处实现。
    【解决方案3】:

    我认为您在错误的地方寻找报告。 当您使用maven 运行测试时,会在target 文件夹中生成报告。当您使用testng.xml 文件运行时,报告将在test-output 文件夹中生成。所以我认为跑步后你找错地方了。请检查一下。

    【讨论】:

    • 否......报告已正确附加。问题是它发送的报告正好在最新报告之前
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多