2017-01-24 1 views
0

ハッシュマップで失敗したすべてのテストケースを保存し、クラスの最後にマップに保存されているすべての値を呼び出すことはできますか?Test Execution(TestNG Class)を実行するたびに、HashMapに 'Data'を格納しますか?

変数:メソッドのコードの後

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(); 
     } 
    } 
} 

@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()」地図の

電流出力: {}

+0

この質問はSeleniumとは関係がないようです。セレン、webdriver、webdriverの各タグを削除してください。 – CMerrill

答えて

1

私はあなたがやろうとしているのか理解していません。

テストに失敗したメールを送信しますか?

リスナーやレポーターなどの適切な機能を使用しないのはなぜですか? the documentation about loggingをご覧ください。

+0

私は疑問がコメントでクリアされるべきだと思う。 – VedX

+0

@SeeKingはい、そうかもしれない。しかし、私はユーザーからのフィードバックを待っています。私はそれから私の答えを更新します。 – juherr

0

変数 "serverStatusMap"を初期化しました。下のコードから

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

私は、i = 0であり、serverStatusMap.size()= 0も見ることができます。だから、whileループに入ることは決してありません。最終的にあなたが地図を印刷するときには、地図の中には何もありません。あなたはwhileの条件を変更する必要があります。

関連する問題