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;
private TestPlan myTestPlan;
private long myCurrentTestStart;
private int myFinishCount = 0;
+ private String myRootName;
public JUnit5TestExecutionListener() {
this(System.out);
@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
}
- public void sendTree(TestPlan testPlan) {
+ public void sendTree(TestPlan testPlan, String rootName) {
+ myRootName = rootName;
for (TestIdentifier root : testPlan.getRoots()) {
sendTreeUnderRoot(testPlan, root);
}
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;
}
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();