java - 每次测试执行后(TestNG 类)将 'Data' 存储在 HashMap 中?

标签 java testng

是否可以将所有失败的测试用例存储在 HashMap 中,然后在类的末尾调用存储在映射中的所有值?

变量:

    private HashMap<String, Integer> serverStatusMap = new HashMap<String, Integer>();

方法代码之后:

    @AfterMethod
public void trackServerStatus(ITestResult testResult) {
    if (testResult.getStatus() == ITestResult.FAILURE) {
        try {
            String testName = this.getClass().getSimpleName().toString();
            int serverStatus = ServerStatus.getResponseCode(basePage.getCurrentURL());
            int i = 0;
            while(i < serverStatusMap.size()) {
                serverStatusMap.put(testName, serverStatus);
                i++;
            }
            //serverStatusMap.put(testName, serverStatus);
        } catch (MalformedURLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

课后调用 map 中存储的值:

    @AfterClass
public void sendEmailBasedOnFailure(ITestContext context) throws WebDriverException, Exception {
    String tempTime = new SimpleDateFormat("hh.mm.ss").format(new Date());

    if(context.getFailedTests().size() > 0) {
        SendEmailFile.sendEmailReport(
                "TIME: " + tempTime + " | " + this.getClass().getPackage().toString(), 


                "TIME: " + tempTime + " | " + this.getClass().getPackage().toString() + " | " + "CLASS NAME: "
                        + this.getClass().getSimpleName().toString() + "\n\n" +
                        "TOTAL NUMBER FAILED TESTS: " + context.getFailedTests().size() + "\n\n" + 
                        "FAILED TEST CASES: " + context.getFailedTests().getAllMethods().toString() + "\n\n" +
                        serverStatusMap.toString());
    }

看最后一行代码:'serverStatusMap.toString()'

map 的当前输出: {}

最佳答案

我不明白你想做什么。

您想发送一封包含失败测试的电子邮件吗?

为什么不使用适当的功能,例如监听器或报告器? 看看the documentation about logging .

关于java - 每次测试执行后(TestNG 类)将 'Data' 存储在 HashMap 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41829545/

相关文章:

java - 找不到这个支架去哪里?

java - 如何识别一个jar是applet?

java - 当参数来自另一个方法时,如何摆脱 JMH 中的 "Method parameters should be @State classes"?

java - 怎样才能成功通过这个代码呢? Java Webdriver TestNg

java - 可以在 TestNG XML Suite 中调用参数化方法吗?

java - 强制一个线程使用的映射中的元素不应被另一个线程使用,直到第一个线程完成执行

java - Junit的assert.fail()方法正在停止执行,需要继续执行并最终给出结果

java - 如何从 Websphere 服务器连接到 Weblogic JMS?

java - 如何通过 TestNG 参数化配置环境 URL?

java - java java.text.ParseException 中的日期解析异常