diff options
4 files changed, 36 insertions, 20 deletions
diff --git a/sonar-server/src/main/java/org/sonar/server/test/ws/TestsShowAction.java b/sonar-server/src/main/java/org/sonar/server/test/ws/TestsShowAction.java index 752ff4550a6..581dad7a90b 100644 --- a/sonar-server/src/main/java/org/sonar/server/test/ws/TestsShowAction.java +++ b/sonar-server/src/main/java/org/sonar/server/test/ws/TestsShowAction.java @@ -77,6 +77,8 @@ public class TestsShowAction implements RequestHandler { json.prop("status", testCase.status().name()); json.prop("durationInMs", testCase.durationInMs()); json.prop("coveredLines", testCase.countCoveredLines()); + json.prop("message", testCase.message()); + json.prop("stackTrace", testCase.stackTrace()); json.endObject(); } json.endArray(); diff --git a/sonar-server/src/main/resources/org/sonar/server/test/ws/tests-example-show.json b/sonar-server/src/main/resources/org/sonar/server/test/ws/tests-example-show.json index fd6076387e6..d4a27166e1b 100644 --- a/sonar-server/src/main/resources/org/sonar/server/test/ws/tests-example-show.json +++ b/sonar-server/src/main/resources/org/sonar/server/test/ws/tests-example-show.json @@ -10,7 +10,9 @@ "name": "find_rules_by_characteristics", "status": "ERROR", "durationInMs": 97, - "coveredLines" : 0 + "coveredLines" : 0, + "message": "expected:<true> but was:<false>", + "stackTrace" : "java.lang.AssertionError: expected:<true> but was:<false>\n\tat org.junit.Assert.fail(Assert.java:91)\n\tat org.junit.Assert.failNotEquals(Assert.java:645)\n\tat org.junit.Assert.assertEquals(Assert.java:126)\n\tat org.junit.Assert.assertEquals(Assert.java:145)\n\tat sonar.samples.testFailures.moduleA.FailTest.testAWithFailure(FailTest.java:12)\n" } ] } diff --git a/sonar-server/src/test/java/org/sonar/server/test/ws/TestsShowActionTest.java b/sonar-server/src/test/java/org/sonar/server/test/ws/TestsShowActionTest.java index f3e232350b1..7567064c8de 100644 --- a/sonar-server/src/test/java/org/sonar/server/test/ws/TestsShowActionTest.java +++ b/sonar-server/src/test/java/org/sonar/server/test/ws/TestsShowActionTest.java @@ -33,6 +33,8 @@ import org.sonar.core.component.SnapshotPerspectives; import org.sonar.server.user.MockUserSession; import org.sonar.server.ws.WsTester; +import javax.annotation.Nullable; + import static com.google.common.collect.Lists.newArrayList; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @@ -58,36 +60,28 @@ public class TestsShowActionTest { public void show() throws Exception { MockUserSession.set().addComponentPermission(UserRole.CODEVIEWER, "SonarQube", TEST_PLAN_KEY); - MutableTestCase testCase1 = testCase("test1", TestCase.Status.OK, 10L, 32); - MutableTestCase testCase2 = testCase("test2", TestCase.Status.ERROR, 97L, 21); + MutableTestCase testCase1 = testCase("test1", TestCase.Status.OK, 10L, 32, null, null); + MutableTestCase testCase2 = testCase("test2", TestCase.Status.ERROR, 97L, 21, "expected:<true> but was:<false>", + "java.lang.AssertionError: expected:<true> but was:<false>\n\t" + + "at org.junit.Assert.fail(Assert.java:91)\n\t" + + "at org.junit.Assert.failNotEquals(Assert.java:645)\n\t" + + "at org.junit.Assert.assertEquals(Assert.java:126)\n\t" + + "at org.junit.Assert.assertEquals(Assert.java:145)\n"); when(testPlan.testCases()).thenReturn(newArrayList(testCase1, testCase2)); WsTester.TestRequest request = tester.newGetRequest("api/tests", "show").setParam("key", TEST_PLAN_KEY); - request.execute().assertJson("{\n" + - " \"tests\": [\n" + - " {\n" + - " \"name\": \"test1\",\n" + - " \"status\": \"OK\",\n" + - " \"durationInMs\": 10,\n" + - " \"coveredLines\": 32\n" + - " },\n" + - " {\n" + - " \"name\": \"test2\",\n" + - " \"status\": \"ERROR\",\n" + - " \"durationInMs\": 97,\n" + - " \"coveredLines\": 21\n" + - " }\n" + - " ],\n" + - "}\n"); + request.execute().assertJson(getClass(), "show.json"); } - private MutableTestCase testCase(String name, TestCase.Status status, Long durationInMs, int coveredLines) { + private MutableTestCase testCase(String name, TestCase.Status status, Long durationInMs, int coveredLines, @Nullable String message, @Nullable String stackTrace) { MutableTestCase testCase = mock(MutableTestCase.class); when(testCase.name()).thenReturn(name); when(testCase.status()).thenReturn(status); when(testCase.durationInMs()).thenReturn(durationInMs); when(testCase.countCoveredLines()).thenReturn(coveredLines); + when(testCase.message()).thenReturn(message); + when(testCase.stackTrace()).thenReturn(stackTrace); return testCase; } diff --git a/sonar-server/src/test/resources/org/sonar/server/test/ws/TestsShowActionTest/show.json b/sonar-server/src/test/resources/org/sonar/server/test/ws/TestsShowActionTest/show.json new file mode 100644 index 00000000000..f8832a0f01f --- /dev/null +++ b/sonar-server/src/test/resources/org/sonar/server/test/ws/TestsShowActionTest/show.json @@ -0,0 +1,18 @@ +{ +"tests": [ + { + "name": "test1", + "status": "OK", + "durationInMs": 10, + "coveredLines": 32 + }, + { + "name": "test2", + "status": "ERROR", + "durationInMs": 97, + "coveredLines": 21, + "message": "expected:<true> but was:<false>", + "stackTrace" : "java.lang.AssertionError: expected:<true> but was:<false>\n\tat org.junit.Assert.fail(Assert.java:91)\n\tat org.junit.Assert.failNotEquals(Assert.java:645)\n\tat org.junit.Assert.assertEquals(Assert.java:126)\n\tat org.junit.Assert.assertEquals(Assert.java:145)\n" + } + ] +} |