Java 在每次测试执行后将“数据”存储在HashMap中(TestNG类)?

Java 在每次测试执行后将“数据”存储在HashMap中(TestNG类)?,java,testng,Java,Testng,是否可以将所有失败的测试用例存储在hashmap中,然后在类末尾调用存储在map中的所有值 变量: 查看最后一行代码:“serverStatusMap.toString” 地图的当前输出: {}我不明白你想做什么 是否发送测试失败的电子邮件 为什么不使用适当的功能,如Listener或Reporter? 查看。您已经初始化了变量serverStatusMap。从下面的代码 int i =0; while(i < serverStatusMap.size()) {

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

变量:

查看最后一行代码:“serverStatusMap.toString”

地图的当前输出:
{}

我不明白你想做什么

是否发送测试失败的电子邮件

为什么不使用适当的功能,如Listener或Reporter?
查看。

您已经初始化了变量serverStatusMap。从下面的代码

int i =0;
while(i < serverStatusMap.size()) {
                serverStatusMap.put(testName, serverStatus);
                i++;
            }

我可以看到I=0,也可以看到serverStatusMap.size=0。所以它永远不会进入while循环。所以最后当你们打印地图时,地图里面什么都并没有。你需要改变你的while状态。

这个问题似乎与硒没有任何关系。请删除selenium、selenium webdriver和webdriver标记。@查找“是”,可能是。但我正在等待用户的反馈。我会更新我的答案。
    @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();
        }
    }
}
    @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());
    }
int i =0;
while(i < serverStatusMap.size()) {
                serverStatusMap.put(testName, serverStatus);
                i++;
            }