junit 5: avoid dependencies on engine classes in runtime scope

This commit is contained in:
Anna.Kozlova
2017-03-30 12:18:41 +02:00
parent d70db7f663
commit 1148a0fc8e
2 changed files with 5 additions and 3 deletions
-1
View File
@@ -22,7 +22,6 @@
<orderEntry type="module" module-name="smRunner" exported="" />
<orderEntry type="module" module-name="testFramework-java" scope="TEST" />
<orderEntry type="module" module-name="debugger-impl" />
<orderEntry type="module" module-name="junit5_rt" />
<orderEntry type="library" name="opentest4j" level="project" />
</component>
<component name="copyright">
@@ -31,7 +31,7 @@ import com.intellij.execution.testframework.SourceScope;
import com.intellij.execution.testframework.TestSearchScope;
import com.intellij.execution.util.JavaParametersUtil;
import com.intellij.execution.util.ProgramParametersUtil;
import com.intellij.junit5.JUnit5IdeaTestRunner;
import com.intellij.junit4.JUnit4IdeaTestRunner;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.module.ModuleUtilCore;
@@ -160,7 +160,10 @@ public abstract class TestObject extends JavaTestFrameworkRunnableState<JUnitCon
GlobalSearchScope globalSearchScope = getScopeForJUnit(getConfiguration().getConfigurationModule().getModule(), sourceScope, project);
if (JUnitUtil.isJUnit5(globalSearchScope, project)) {
javaParameters.getProgramParametersList().add(JUnitStarter.JUNIT5_PARAMETER);
javaParameters.getClassPath().add(PathUtil.getJarPathForClass(JUnit5IdeaTestRunner.class));
//detect junit 5 rt without dependency on junit5_rt module
File junit4Rt = new File(PathUtil.getJarPathForClass(JUnit4IdeaTestRunner.class));
String junit5Name = junit4Rt.getName().replace("junit", "junit5");
javaParameters.getClassPath().add(new File(junit4Rt.getParent(), junit5Name));
final PathsList classPath = javaParameters.getClassPath();
File lib = new File(PathUtil.getJarPathForClass(MultipleFailuresError.class)).getParentFile();