aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sonar-server/src/main/java/org/sonar/server/test/ws/TestsShowAction.java2
-rw-r--r--sonar-server/src/main/resources/org/sonar/server/test/ws/tests-example-show.json4
-rw-r--r--sonar-server/src/test/java/org/sonar/server/test/ws/TestsShowActionTest.java32
-rw-r--r--sonar-server/src/test/resources/org/sonar/server/test/ws/TestsShowActionTest/show.json18
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"
+ }
+ ]
+}