junit 5 rt: name root node
authorAnna Kozlova <anna.kozlova@jetbrains.com>
Tue, 8 Mar 2016 18:57:48 +0000 (19:57 +0100)
committerAnna Kozlova <anna.kozlova@jetbrains.com>
Thu, 10 Mar 2016 10:21:45 +0000 (11:21 +0100)
plugins/junit5_rt/src/com/intellij/junit5/JUnit5IdeaTestRunner.java
plugins/junit5_rt/src/com/intellij/junit5/JUnit5TestExecutionListener.java
plugins/junit5_rt/src/com/intellij/junit5/JUnit5TestRunnerUtil.java

index 9a42956a00fee6093b222ea5c8f2dff77948561e..a35ec9db73387dd4eb4e27351a8b0e92ec137e13 100644 (file)
@@ -33,9 +33,10 @@ public class JUnit5IdeaTestRunner implements IdeaTestRunner {
   public int startRunnerWithArgs(String[] args, ArrayList listeners, String name, int count, boolean sendTree) {
     Launcher launcher = LauncherFactory.create();
     launcher.registerTestExecutionListeners(myListener);
-    final TestDiscoveryRequest discoveryRequest = JUnit5TestRunnerUtil.buildRequest(args, name, false);
+    final String[] packageNameRef = new String[1];
+    final TestDiscoveryRequest discoveryRequest = JUnit5TestRunnerUtil.buildRequest(args, packageNameRef);
     final TestPlan testPlan = launcher.discover(discoveryRequest);
-    myListener.sendTree(testPlan);
+    myListener.sendTree(testPlan, packageNameRef[0]);
     launcher.execute(discoveryRequest);
 
     return 0;
index 806f2b3bc0d7d3eaa5453fa3b4df780b384f7ef9..c89d3e8065deb2a645580d720c9adbfda1feeec2 100644 (file)
@@ -35,6 +35,7 @@ public class JUnit5TestExecutionListener implements TestExecutionListener {
   private TestPlan myTestPlan;
   private long myCurrentTestStart;
   private int myFinishCount = 0;
+  private String myRootName;
 
   public JUnit5TestExecutionListener() {
     this(System.out);
@@ -48,6 +49,20 @@ public class JUnit5TestExecutionListener implements TestExecutionListener {
   @Override
   public void testPlanExecutionStarted(TestPlan testPlan) {
     myTestPlan = testPlan;
+    if (myRootName != null) {
+      int lastPointIdx = myRootName.lastIndexOf('.');
+      String name = myRootName;
+      String comment = null;
+      if (lastPointIdx >= 0) {
+        name = myRootName.substring(lastPointIdx + 1);
+        comment = myRootName.substring(0, lastPointIdx);
+      }
+
+      myPrintStream.println("##teamcity[rootName name = \'" + escapeName(name) +
+                            (comment != null ? ("\' comment = \'" + escapeName(comment)) : "") + "\'" +
+                            " location = \'java:suite://" + escapeName(myRootName) +
+                            "\']");
+    }
   }
 
   @Override
@@ -163,7 +178,8 @@ public class JUnit5TestExecutionListener implements TestExecutionListener {
   }
 
 
-  public void sendTree(TestPlan testPlan) {
+  public void sendTree(TestPlan testPlan, String rootName) {
+    myRootName = rootName;
     for (TestIdentifier root : testPlan.getRoots()) {
       sendTreeUnderRoot(testPlan, root);
     }
index 0d72bf04975771205c94a93be61999a917d27f24..a8d271f648db190be2cd6742b8c343919cd59376 100644 (file)
@@ -29,7 +29,7 @@ import java.util.stream.Collectors;
 
 public class JUnit5TestRunnerUtil {
   
-  public static TestDiscoveryRequest buildRequest(String[] suiteClassNames, final String name, boolean notForked) {
+  public static TestDiscoveryRequest buildRequest(String[] suiteClassNames, String[] packageNameRef) {
     if (suiteClassNames.length == 0) {
       return null;
     }
@@ -53,8 +53,7 @@ public class JUnit5TestRunnerUtil {
           while ((line = reader.readLine()) != null) {
             lines.add(line);
           }
-          //todo set package name
-          String suiteName = packageName.length() == 0 ? "<default package>" : packageName;
+          packageNameRef[0] = packageName.length() == 0 ? "<default package>" : packageName;
         }
         finally {
           reader.close();