From b31ea82210b863cb86a2234366480ad6d35088ab Mon Sep 17 00:00:00 2001 From: Alena Zubrevich Date: Fri, 17 Nov 2017 13:43:09 +0300 Subject: [PATCH] fix summary bug --- .../com/epam/jira/testng/RetryAnalyzer.java | 8 ++++---- .../java/com/epam/jira/util/FileUtils.java | 7 ++++++- .../com/epam/jira/util/JiraInfoProvider.java | 16 ++++++++++++++-- ...ment-adapter-1.7-jar-with-dependencies.jar | Bin 1450492 -> 1450799 bytes 4 files changed, 24 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/epam/jira/testng/RetryAnalyzer.java b/src/main/java/com/epam/jira/testng/RetryAnalyzer.java index 440f253..6f165b4 100644 --- a/src/main/java/com/epam/jira/testng/RetryAnalyzer.java +++ b/src/main/java/com/epam/jira/testng/RetryAnalyzer.java @@ -1,6 +1,7 @@ package com.epam.jira.testng; import com.epam.jira.JIRATestKey; +import com.epam.jira.util.JiraInfoProvider; import org.testng.IRetryAnalyzer; import org.testng.ITestResult; @@ -24,11 +25,10 @@ int getRerunAttempts() { public boolean retry(ITestResult result) { Method method = result.getMethod().getConstructorOrMethod().getMethod(); JIRATestKey annotation = method.getAnnotation(JIRATestKey.class); - int maxAttempts = annotation != null && !annotation.disabled() - ? annotation.retryCountIfFailed() - : MAX_DEFAULT_ATTEMPTS; + boolean hasJiraTestKey = annotation != null && !annotation.disabled(); - if (counter < maxAttempts) { + if (counter < (hasJiraTestKey ? annotation.retryCountIfFailed() : MAX_DEFAULT_ATTEMPTS)) { + if (hasJiraTestKey) JiraInfoProvider.cleanFor(annotation.key()); counter++; return true; } diff --git a/src/main/java/com/epam/jira/util/FileUtils.java b/src/main/java/com/epam/jira/util/FileUtils.java index 2c4bdfe..af87d93 100644 --- a/src/main/java/com/epam/jira/util/FileUtils.java +++ b/src/main/java/com/epam/jira/util/FileUtils.java @@ -22,8 +22,13 @@ public static String save(Throwable throwable) { String message = null; if (throwable != null) { String filePath = String.format("stacktrace_%s.txt", LocalDateTime.now().toString().replace(":", "-")); + String exceptionMessage = throwable.getMessage(); + if (exceptionMessage.contains("\n")) + exceptionMessage = exceptionMessage.substring(0, exceptionMessage.indexOf('\n')); + + FileUtils.writeStackTrace(throwable, filePath); - message = "Failed due to: " + throwable.getClass().getName() + ": " + throwable.getMessage() + message = "Failed due to: " + throwable.getClass().getName() + ": " + exceptionMessage + ".\nFull stack trace attached as " + filePath; } return message; diff --git a/src/main/java/com/epam/jira/util/JiraInfoProvider.java b/src/main/java/com/epam/jira/util/JiraInfoProvider.java index fad0720..fce436d 100644 --- a/src/main/java/com/epam/jira/util/JiraInfoProvider.java +++ b/src/main/java/com/epam/jira/util/JiraInfoProvider.java @@ -2,11 +2,13 @@ import com.epam.jira.JIRATestKey; import com.epam.jira.entity.Parameter; -import org.apache.commons.lang3.ObjectUtils; import java.io.File; import java.io.IOException; -import java.util.*; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; /** @@ -93,6 +95,16 @@ public static void saveValue(String title, Object value) { saveValue(title, value != null ? value.toString() : "null"); } + public static void cleanFor(String issueKey) { + if (jiraKeyParametersMapping.containsKey(issueKey)) { + jiraKeyParametersMapping.remove(issueKey); + } + if (jiraKeyAttachmentsMapping.containsKey(issueKey)) { + jiraKeyAttachmentsMapping.remove(issueKey); + } + + } + public static List getIssueAttachments(String key) { return jiraKeyParametersMapping.containsKey(key) ? jiraKeyAttachmentsMapping.get(key) : null; } diff --git a/test-management-adapter-1.7-jar-with-dependencies.jar b/test-management-adapter-1.7-jar-with-dependencies.jar index 497a960b412b84668ea971f981421bf2a97edee7..54889820435b379bcc9752842aca7f8c71d94ee1 100644 GIT binary patch delta 22064 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 A;{X5v delta 22016 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