Search in sources :

Example 1 with ResolvedConfiguration

use of com.google.jstestdriver.config.ResolvedConfiguration in project intellij-plugins by JetBrains.

the class JstdDebuggingFileFinderProvider method provideFileFinder.

@NotNull
public RemoteDebuggingFileFinder provideFileFinder() throws ExecutionException {
    ResolvedConfiguration resolvedConfiguration = resolveConfiguration();
    BiMap<String, VirtualFile> mappings = HashBiMap.create();
    addAllRemoteUrlMappings(resolvedConfiguration.getTests(), mappings);
    addAllRemoteUrlMappings(resolvedConfiguration.getFilesList(), mappings);
    return new RemoteDebuggingFileFinder(mappings, null);
}
Also used : VirtualFile(com.intellij.openapi.vfs.VirtualFile) ResolvedConfiguration(com.google.jstestdriver.config.ResolvedConfiguration) RemoteDebuggingFileFinder(com.intellij.javascript.debugger.RemoteDebuggingFileFinder) NotNull(org.jetbrains.annotations.NotNull)

Example 2 with ResolvedConfiguration

use of com.google.jstestdriver.config.ResolvedConfiguration in project intellij-plugins by JetBrains.

the class JstdTestFilePathIndex method doIndexConfigFile.

@NotNull
private static Map<String, Void> doIndexConfigFile(@NotNull Reader configFileReader, @NotNull BasePaths initialBasePaths) {
    YamlParser yamlParser = new YamlParser();
    final Map<String, Void> map = new THashMap<>();
    ParsedConfiguration parsedConfiguration = (ParsedConfiguration) yamlParser.parse(configFileReader, initialBasePaths);
    PathResolver pathResolver = new PathResolver(parsedConfiguration.getBasePaths(), Collections.emptySet(), new DisplayPathSanitizer());
    FlagsImpl flags = new FlagsImpl();
    flags.setServer("test:1");
    ResolvedConfiguration resolvedConfiguration = (ResolvedConfiguration) parsedConfiguration.resolvePaths(pathResolver, flags);
    doPutAll(map, resolvedConfiguration.getTests());
    doPutAll(map, resolvedConfiguration.getFilesList());
    return map;
}
Also used : YamlParser(com.google.jstestdriver.config.YamlParser) DisplayPathSanitizer(com.google.jstestdriver.util.DisplayPathSanitizer) ResolvedConfiguration(com.google.jstestdriver.config.ResolvedConfiguration) ParsedConfiguration(com.google.jstestdriver.config.ParsedConfiguration) THashMap(gnu.trove.THashMap) PathResolver(com.google.jstestdriver.PathResolver) FlagsImpl(com.google.jstestdriver.FlagsImpl) NotNull(org.jetbrains.annotations.NotNull)

Example 3 with ResolvedConfiguration

use of com.google.jstestdriver.config.ResolvedConfiguration in project intellij-plugins by JetBrains.

the class TestRunner method runTests.

@SuppressWarnings("deprecation")
private void runTests(@NotNull final File configFile, @NotNull String[] extraArgs, final boolean dryRun) throws ConfigurationException {
    JsTestDriverBuilder builder = new JsTestDriverBuilder();
    final ParsedConfiguration parsedConfiguration;
    try {
        parsedConfiguration = JstdConfigParsingUtils.parseConfiguration(configFile);
    } catch (Exception e) {
        throw new ConfigurationException("Configuration file parsing failed.\n" + "See http://code.google.com/p/js-test-driver/wiki/ConfigurationFile for clarification.\n\n" + "Details:", e);
    }
    final File singleBasePath = JstdConfigParsingUtils.getSingleBasePath(parsedConfiguration.getBasePaths(), configFile);
    myTreeManager.setCurrentBasePath(singleBasePath.getAbsolutePath());
    JstdConfigParsingUtils.wipeCoveragePlugin(parsedConfiguration);
    builder.setDefaultConfiguration(parsedConfiguration);
    builder.withPluginInitializer(new PluginInitializer() {

        @Override
        public Module initializeModule(Flags flags, Configuration config) {
            return new AbstractModule() {

                @Override
                public void configure() {
                    Multibinder<TestListener> testListeners = Multibinder.newSetBinder(binder(), TestListener.class);
                    testListeners.addBinding().to(TestResultHolder.class);
                    testListeners.addBinding().toInstance(new IdeaTestListener(myTreeManager, configFile, singleBasePath, dryRun, mySettings.getTestFileScope()));
                }
            };
        }
    });
    builder.setRunnerMode(RunnerMode.QUIET);
    builder.setServer(mySettings.getServerUrl());
    List<String> flagArgs = Lists.newArrayList("--captureConsole", "--server", mySettings.getServerUrl());
    ResolvedConfiguration resolvedConfiguration = JstdConfigParsingUtils.resolveConfiguration(parsedConfiguration);
    if (dryRun && JstdUtils.isJasmineTests(resolvedConfiguration)) {
        // https://github.com/ibolmo/jasmine-jstd-adapter/pull/21
        flagArgs.add("--reset");
    }
    flagArgs.addAll(Arrays.asList(extraArgs));
    List<String> coverageExcludedFiles = null;
    File emptyOutputDir = null;
    boolean runCoverage = false;
    if (myCoverageSession != null && !dryRun) {
        emptyOutputDir = createTempDir();
        if (emptyOutputDir != null) {
            flagArgs.add("--testOutput");
            flagArgs.add(emptyOutputDir.getAbsolutePath());
            List<String> testPaths = getTestFilePaths(resolvedConfiguration);
            coverageExcludedFiles = Lists.newArrayList(testPaths);
            coverageExcludedFiles.addAll(mySettings.getFilesExcludedFromCoverageRec());
            PluginInitializer coverageInitializer = getCoverageInitializer(coverageExcludedFiles);
            if (coverageInitializer != null) {
                builder.withPluginInitializer(coverageInitializer);
                builder.withPluginInitializer(new DependenciesTouchFix());
                runCoverage = true;
            }
        }
    }
    builder.setFlags(toStringArray(flagArgs));
    builder.setFlagsParser(new IntelliJFlagParser(mySettings, dryRun));
    JsTestDriver jstd = builder.build();
    jstd.runConfiguration();
    if (runCoverage) {
        File[] coverageReportFiles = emptyOutputDir.listFiles((dir, name) -> name.endsWith("-coverage.dat"));
        if (coverageReportFiles != null && coverageReportFiles.length == 1) {
            try {
                CoverageReport coverageReport = CoverageSerializationUtils.readLCOV(coverageReportFiles[0]);
                for (String excludedPath : coverageExcludedFiles) {
                    coverageReport.clearReportByFilePath(excludedPath);
                }
                myCoverageSession.mergeReport(coverageReport);
            } catch (Exception e) {
                myTreeManager.printThrowable(e);
            }
        }
    }
}
Also used : PluginInitializer(com.google.jstestdriver.hooks.PluginInitializer) Configuration(com.google.jstestdriver.config.Configuration) ResolvedConfiguration(com.google.jstestdriver.config.ResolvedConfiguration) ParsedConfiguration(com.google.jstestdriver.config.ParsedConfiguration) Multibinder(com.google.inject.multibindings.Multibinder) CoverageReport(com.google.jstestdriver.idea.rt.coverage.CoverageReport) TestResultHolder(com.google.jstestdriver.output.TestResultHolder) JsTestDriverBuilder(com.google.jstestdriver.embedded.JsTestDriverBuilder) ConfigurationException(com.google.jstestdriver.config.ConfigurationException) AbstractModule(com.google.inject.AbstractModule) ResolvedConfiguration(com.google.jstestdriver.config.ResolvedConfiguration) ParsedConfiguration(com.google.jstestdriver.config.ParsedConfiguration) ConfigurationException(com.google.jstestdriver.config.ConfigurationException) TestListener(com.google.jstestdriver.hooks.TestListener) Module(com.google.inject.Module) AbstractModule(com.google.inject.AbstractModule)

Aggregations

ResolvedConfiguration (com.google.jstestdriver.config.ResolvedConfiguration)3 ParsedConfiguration (com.google.jstestdriver.config.ParsedConfiguration)2 NotNull (org.jetbrains.annotations.NotNull)2 AbstractModule (com.google.inject.AbstractModule)1 Module (com.google.inject.Module)1 Multibinder (com.google.inject.multibindings.Multibinder)1 FlagsImpl (com.google.jstestdriver.FlagsImpl)1 PathResolver (com.google.jstestdriver.PathResolver)1 Configuration (com.google.jstestdriver.config.Configuration)1 ConfigurationException (com.google.jstestdriver.config.ConfigurationException)1 YamlParser (com.google.jstestdriver.config.YamlParser)1 JsTestDriverBuilder (com.google.jstestdriver.embedded.JsTestDriverBuilder)1 PluginInitializer (com.google.jstestdriver.hooks.PluginInitializer)1 TestListener (com.google.jstestdriver.hooks.TestListener)1 CoverageReport (com.google.jstestdriver.idea.rt.coverage.CoverageReport)1 TestResultHolder (com.google.jstestdriver.output.TestResultHolder)1 DisplayPathSanitizer (com.google.jstestdriver.util.DisplayPathSanitizer)1 RemoteDebuggingFileFinder (com.intellij.javascript.debugger.RemoteDebuggingFileFinder)1 VirtualFile (com.intellij.openapi.vfs.VirtualFile)1 THashMap (gnu.trove.THashMap)1