I am trying to run my test method by use ProgramRunnerUtil.
this is my code:
import com.intellij.execution.ProgramRunnerUtil;
import com.intellij.execution.RunManager;
import com.intellij.execution.RunnerAndConfigurationSettings;
import com.intellij.execution.executors.DefaultRunExecutor;
import com.intellij.openapi.project.Project;
import com.theoryinpractice.testng.configuration.TestNGConfiguration;
import com.theoryinpractice.testng.configuration.TestNGConfigurationType;
public class TestNGRunnerByMethod {
public static void runTestMethod(Project project, String fullyQualifiedClassName, String methodName) {
TestNGConfigurationType configType = TestNGConfigurationType.getInstance();
RunManager runManager = RunManager.getInstance(project);
RunnerAndConfigurationSettings settings = runManager.createConfiguration(
"Run " + methodName + " in " + fullyQualifiedClassName,
configType.getConfigurationFactories()[0]);
TestNGConfiguration configuration = (TestNGConfiguration) settings.getConfiguration();
// Set as METHOD test object
configuration.getPersistantData().TEST_OBJECT = TestNGConfiguration.TEST_METHOD;
configuration.getPersistantData().getPackages().clear();
configuration.getPersistantData().getClasses().clear();
configuration.getPersistantData().getMethods().clear();
// Format: className#methodName
configuration.getPersistantData().getMethods().add(fullyQualifiedClassName + "#" + methodName);
runManager.addConfiguration(settings);
runManager.setSelectedConfiguration(settings);
ProgramRunnerUtil.executeConfiguration(settings, DefaultRunExecutor.getRunExecutorInstance());
}
}