junit/testng configuration providers based on test framework; minimize junit-vs-testng duplication

This commit is contained in:
Anna.Kozlova
2017-03-02 11:48:16 +01:00
parent 72a153472f
commit 837d7ef150
35 changed files with 553 additions and 634 deletions
@@ -0,0 +1,7 @@
package abstractTests;
import junit.framework.TestCase;
public abstract class AbstractTest extends TestCase {
public void test1() throws Exception {}
}
@@ -0,0 +1,4 @@
package abstractTests;
public class AbstractTestImpl1 extends AbstractTest {
}
@@ -0,0 +1,4 @@
package abstractTests;
public class AbstractTestImpl2 extends AbstractTest {
}
@@ -20,7 +20,7 @@ import com.intellij.execution.actions.ConfigurationFromContext;
import com.intellij.execution.actions.RunConfigurationProducer;
import com.intellij.execution.configurations.RunConfiguration;
import com.intellij.execution.junit.JUnitConfiguration;
import com.intellij.execution.junit.JUnitConfigurationProducer;
import com.intellij.execution.testframework.AbstractJavaTestConfigurationProducer;
import com.intellij.openapi.actionSystem.CommonDataKeys;
import com.intellij.openapi.actionSystem.LangDataKeys;
import com.intellij.openapi.application.WriteAction;
@@ -151,7 +151,7 @@ public abstract class BaseConfigurationTestCase extends IdeaTestCase {
}
protected JUnitConfiguration createJUnitConfiguration(@NotNull PsiElement psiElement,
@NotNull Class<? extends JUnitConfigurationProducer> producerClass,
@NotNull Class<? extends AbstractJavaTestConfigurationProducer> producerClass,
@NotNull MapDataContext dataContext) {
ConfigurationContext context = createContext(psiElement, dataContext);
RunConfigurationProducer producer = RunConfigurationProducer.getInstance(producerClass);
@@ -21,8 +21,8 @@ import com.intellij.execution.configurations.RuntimeConfigurationException;
import com.intellij.execution.impl.RunnerAndConfigurationSettingsImpl;
import com.intellij.execution.junit.AllInPackageConfigurationProducer;
import com.intellij.execution.junit.JUnitConfiguration;
import com.intellij.execution.junit.JUnitConfigurationProducer;
import com.intellij.execution.junit.JUnitConfigurationType;
import com.intellij.execution.testframework.AbstractJavaTestConfigurationProducer;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.*;
import com.intellij.refactoring.PackageWrapper;
@@ -244,7 +244,7 @@ public class ConfigurationRefactoringsTest extends BaseConfigurationTestCase {
@Override
protected JUnitConfiguration createJUnitConfiguration(@NotNull PsiElement psiElement,
@NotNull Class<? extends JUnitConfigurationProducer> producerClass,
@NotNull Class<? extends AbstractJavaTestConfigurationProducer> producerClass,
@NotNull MapDataContext dataContext) {
final JUnitConfiguration configuration = super.createJUnitConfiguration(psiElement, producerClass, dataContext);
RunManagerEx.getInstanceEx(myProject).setTemporaryConfiguration(new RunnerAndConfigurationSettingsImpl(null, configuration, false));
@@ -97,7 +97,7 @@ public class ConfigurationsTest extends BaseConfigurationTestCase {
Assertion.compareUnordered(new Module[]{module1, module2}, configuration.getValidModules());
PsiClass innerTest = findClass(module1, INNER_TEST_NAME);
configuration = createJUnitConfiguration(innerTest, TestClassConfigurationProducer.class, new MapDataContext());
configuration = createJUnitConfiguration(innerTest, TestInClassConfigurationProducer.class, new MapDataContext());
checkClassName(RT_INNER_TEST_NAME, configuration);
checkCanRun(configuration);
@@ -289,7 +289,7 @@ public class ConfigurationsTest extends BaseConfigurationTestCase {
checkContains(classPath, output);
JUnitConfiguration junitConfiguration =
createJUnitConfiguration(findClass(module4, "TestApplication"), TestClassConfigurationProducer.class, new MapDataContext());
createJUnitConfiguration(findClass(module4, "TestApplication"), TestInClassConfigurationProducer.class, new MapDataContext());
parameters = checkCanRun(junitConfiguration);
classPath = parameters.getClassPath().getPathsString();
checkContains(classPath, testOuput);
@@ -10,6 +10,7 @@ import com.intellij.openapi.actionSystem.DataConstants;
import com.intellij.openapi.actionSystem.ex.DataConstantsEx;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.module.ModuleUtil;
import com.intellij.openapi.util.text.StringUtil;
import com.intellij.psi.PsiClass;
import com.intellij.psi.PsiMethod;
import com.intellij.psi.PsiPackage;
@@ -32,10 +33,24 @@ public class ContextConfigurationTest extends BaseConfigurationTestCase {
addModule("commonConfiguration");
}
public void testAbstractJUnit3TestCase() throws Exception {
String packageName = "abstractTests";
String shortName = "AbstractTest";
String qualifiedName = StringUtil.getQualifiedName(packageName, shortName);
PsiClass psiClass = findClass(getModule1(), qualifiedName);
PsiMethod testMethod = psiClass.findMethodsByName(METHOD_NAME, false)[0];
JUnitConfiguration configuration = createConfiguration(testMethod);
checkClassName(qualifiedName, configuration);
checkMethodName(METHOD_NAME, configuration);
checkPackage(packageName, configuration);
checkGeneretedName(configuration, shortName + "." + METHOD_NAME);
}
public void testJUnitMethodTest() {
PsiClass psiClass = findClass(getModule1(), CLASS_NAME);
PsiMethod testMethod = psiClass.findMethodsByName(METHOD_NAME, false)[0];
JUnitConfiguration configuration = (JUnitConfiguration)createConfiguration(testMethod);
JUnitConfiguration configuration = createConfiguration(testMethod);
checkTestObject(JUnitConfiguration.TEST_METHOD, configuration);
checkClassName(CLASS_NAME, configuration);
checkMethodName(METHOD_NAME, configuration);
@@ -46,7 +61,7 @@ public class ContextConfigurationTest extends BaseConfigurationTestCase {
public void testJUnitClassTest() {
PsiClass psiClass = findClass(getModule1(), CLASS_NAME);
final MapDataContext dataContext = new MapDataContext();
JUnitConfiguration configuration = createJUnitConfiguration(psiClass, TestClassConfigurationProducer.class, dataContext);
JUnitConfiguration configuration = createJUnitConfiguration(psiClass, TestInClassConfigurationProducer.class, dataContext);
checkTestObject(JUnitConfiguration.TEST_CLASS, configuration);
checkClassName(CLASS_NAME, configuration);
checkPackage(PACKAGE_NAME, configuration);
@@ -64,7 +79,7 @@ public class ContextConfigurationTest extends BaseConfigurationTestCase {
configuration.setModule(getModule2());
MapDataContext dataContext = new MapDataContext();
dataContext.put(DataConstantsEx.RUNTIME_CONFIGURATION, configuration);
configuration = createJUnitConfiguration(psiClass, TestClassConfigurationProducer.class, dataContext);
configuration = createJUnitConfiguration(psiClass, TestInClassConfigurationProducer.class, dataContext);
checkClassName(psiClass.getQualifiedName(), configuration);
assertEquals(Collections.singleton(getModule2()), new HashSet(Arrays.asList(configuration.getModules())));
}