ensure ServiceMessageTypes is in classpath if different classpath is used per run

This commit is contained in:
Anna Kozlova
2015-04-13 19:23:45 +02:00
parent 740c4c4104
commit 127a8db400
2 changed files with 9 additions and 1 deletions
@@ -84,7 +84,7 @@ public abstract class JavaTestFrameworkRunnableState<T extends ModuleBasedConfig
}
protected ExecutionResult startSMRunner(Executor executor) throws ExecutionException {
if (!Registry.is(getFrameworkId() + "_sm_runner")) {
if (!isSmRunnerUsed()) {
return null;
}
getJavaParameters().getVMParametersList().addProperty("idea." + getFrameworkId() + ".sm_runner");
@@ -137,6 +137,10 @@ public abstract class JavaTestFrameworkRunnableState<T extends ModuleBasedConfig
return result;
}
protected boolean isSmRunnerUsed() {
return Registry.is(getFrameworkId() + "_sm_runner");
}
@Override
protected JavaParameters createJavaParameters() throws ExecutionException {
final JavaParameters javaParameters = new JavaParameters();
@@ -72,6 +72,7 @@ import com.intellij.rt.execution.junit.RepeatCount;
import com.intellij.util.Function;
import com.intellij.util.PathUtil;
import com.intellij.util.ui.UIUtil;
import jetbrains.buildServer.messages.serviceMessages.ServiceMessageTypes;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.jps.model.serialization.PathMacroUtil;
@@ -467,6 +468,9 @@ public abstract class TestObject extends JavaTestFrameworkRunnableState<JUnitCon
if (classpath == null) {
final JavaParameters parameters = new JavaParameters();
configureAdditionalClasspath(parameters);
if (isSmRunnerUsed()) {
parameters.getClassPath().add(PathUtil.getJarPathForClass(ServiceMessageTypes.class));
}
JavaParametersUtil.configureModule(module, parameters, JavaParameters.JDK_AND_CLASSES_AND_TESTS,
getConfiguration().isAlternativeJrePathEnabled() ? getConfiguration()
.getAlternativeJrePath() : null);