public ImportRunProfile(VirtualFile file, Project project) { myFile = file; myProject = project; try { final Document document = JDOMUtil.loadDocument(VfsUtilCore.virtualToIoFile(myFile)); final Element config = document.getRootElement().getChild("config"); if (config != null) { String configTypeId = config.getAttributeValue("configId"); if (configTypeId != null) { final ConfigurationType configurationType = ConfigurationTypeUtil.findConfigurationType(configTypeId); if (configurationType != null) { myConfiguration = configurationType.getConfigurationFactories()[0].createTemplateConfiguration( project); myConfiguration.setName(config.getAttributeValue("name")); myConfiguration.readExternal(config); final Executor executor = ExecutorRegistry.getInstance().getExecutorById(DefaultRunExecutor.EXECUTOR_ID); if (executor != null) { if (myConfiguration instanceof SMRunnerConsolePropertiesProvider) { myProperties = ((SMRunnerConsolePropertiesProvider) myConfiguration) .createTestConsoleProperties(executor); } } } } } } catch (Exception ignore) { } }
private static JavaParameters checkCanRun(RunConfiguration configuration) throws ExecutionException { final RunProfileState state; state = ExecutionEnvironmentBuilder.create( DefaultRunExecutor.getRunExecutorInstance(), configuration) .build() .getState(); assertNotNull(state); assertTrue(state instanceof JavaCommandLine); if (state instanceof TestPackage) { @SuppressWarnings("UnusedDeclaration") final JavaParameters parameters = ((TestPackage) state).getJavaParameters(); final SearchForTestsTask task = ((TestPackage) state).createSearchingForTestsTask(); assertNotNull(task); task.startSearch(); } try { configuration.checkConfiguration(); } catch (RuntimeConfigurationError e) { fail("cannot run: " + e.getMessage()); } catch (RuntimeConfigurationException e) { // ignore } return ((JavaCommandLine) state).getJavaParameters(); }
private void checkCantRun(RunConfiguration configuration, String reasonBeginning) throws ExecutionException { // MockRunRequest request = new MockRunRequest(myProject); // CantRunException rejectReason; // try { // configuration.runRequested(request); // rejectReason = request.myRejectReason; // } // catch (CantRunException e) { // rejectReason = e; // } // if (rejectReason == null) fail("Should not run"); // rejectReason.getMessage().startsWith(reasonBeginning); try { configuration.checkConfiguration(); } catch (RuntimeConfigurationError e) { assertTrue(e.getLocalizedMessage().startsWith(reasonBeginning)); return; } catch (RuntimeConfigurationException ignored) { } RunProfileState state = configuration.getState( DefaultRunExecutor.getRunExecutorInstance(), new ExecutionEnvironmentBuilder(myProject, DefaultRunExecutor.getRunExecutorInstance()) .runProfile(configuration) .build()); assertTrue(state instanceof JavaCommandLine); try { ((JavaCommandLine) state).getJavaParameters(); } catch (Throwable e) { assertTrue(e.getLocalizedMessage().startsWith(reasonBeginning)); return; } fail("Should not run"); }
@Nullable @Override public RunProfileState getState( @NotNull Executor executor, @NotNull ExecutionEnvironment environment) throws ExecutionException { if (!myImported) { myImported = true; return new ImportedTestRunnableState(this, VfsUtilCore.virtualToIoFile(myFile)); } if (myConfiguration != null) { try { return myConfiguration.getState(executor, environment); } catch (Throwable e) { LOG.info(e); throw new ExecutionException("Unable to run the configuration: settings are corrupted"); } } throw new ExecutionException( "Unable to run the configuration: failed to detect test framework"); }
@Override public String getName() { return myImported && myConfiguration != null ? myConfiguration.getName() : myFile.getNameWithoutExtension(); }