Skip to content

Commit 11c55f8

Browse files
authored
Add possibility to add error messages to failed token macro (#79)
1 parent 0996b03 commit 11c55f8

File tree

2 files changed

+16
-3
lines changed

2 files changed

+16
-3
lines changed

src/main/java/hudson/plugins/robot/tokens/RobotFailedCasesTokenMacro.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@
1717
@Extension(optional = true)
1818
public class RobotFailedCasesTokenMacro extends DataBoundTokenMacro {
1919

20+
@Parameter
21+
public boolean addErrorMessages;
22+
2023
@Override
2124
public String evaluate(AbstractBuild<?, ?> context, TaskListener listener,
2225
String macroName) throws MacroEvaluationException, IOException,
@@ -35,6 +38,9 @@ public String evaluate(Run<?, ?> context, FilePath workspace, TaskListener liste
3538
String newline = "";
3639
for (RobotCaseResult failedCase : result.getAllFailedCases()){
3740
builder.append(newline).append(failedCase.getRelativePackageName(result));
41+
if (addErrorMessages && failedCase.getErrorMsg() != null && !failedCase.getErrorMsg().isEmpty()) {
42+
builder.append(": ").append(failedCase.getErrorMsg());
43+
}
3844
newline = "\n";
3945
}
4046

src/test/java/hudson/plugins/robot/tokens/RobotFailedCasesTokenMacroTest.java

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,12 @@ public void setUp(){
3636

3737
RobotCaseResult case1 = Mockito.mock(RobotCaseResult.class);
3838
Mockito.when(case1.getRelativePackageName(result)).thenReturn("Failcases.subcases.Failure1");
39-
39+
Mockito.when(case1.getErrorMsg()).thenReturn("Case1 failed");
40+
4041
RobotCaseResult case2 = Mockito.mock(RobotCaseResult.class);
4142
Mockito.when(case2.getRelativePackageName(result)).thenReturn("Morefails.Failure2");
42-
43+
Mockito.when(case2.getErrorMsg()).thenReturn("Case2 failed");
44+
4345
failedList.add(case1);
4446
failedList.add(case2);
4547

@@ -52,7 +54,12 @@ public void testAcceptsName(){
5254
assertTrue(new RobotFailedCasesTokenMacro().acceptsMacroName(macroName));
5355
}
5456

55-
public void testTokenConversion() throws MacroEvaluationException, IOException, InterruptedException{
57+
public void testTokenConversionWithoutMessages() throws MacroEvaluationException, IOException, InterruptedException{
5658
assertEquals("Failcases.subcases.Failure1\nMorefails.Failure2",token.evaluate(build, listener, macroName));
5759
}
60+
61+
public void testTokenConversionWithMessages() throws MacroEvaluationException, IOException, InterruptedException{
62+
token.addErrorMessages = true;
63+
assertEquals("Failcases.subcases.Failure1: Case1 failed\nMorefails.Failure2: Case2 failed",token.evaluate(build, listener, macroName));
64+
}
5865
}

0 commit comments

Comments
 (0)