From db2415285f35170d99a0ee7bd1dce96d1095c0ce Mon Sep 17 00:00:00 2001 From: Maksim Zuev Date: Tue, 19 Dec 2023 14:41:06 +0100 Subject: [PATCH] [coverage] Add coverage run config creation test GitOrigin-RevId: 4498b11fa17ba600d01cbfef8dce614fe94d26e7 --- .../CoverageEnabledConfiguration.java | 2 +- .../.idea/runConfigurations/foo_in_simple.xml | 18 ++++++++ .../coverage/CoverageRunConfigTest.kt | 45 +++++++++++++++++++ 3 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 plugins/coverage/testData/simple/.idea/runConfigurations/foo_in_simple.xml create mode 100644 plugins/coverage/testSrc/com/intellij/coverage/CoverageRunConfigTest.kt diff --git a/plugins/coverage-common/src/com/intellij/execution/configurations/coverage/CoverageEnabledConfiguration.java b/plugins/coverage-common/src/com/intellij/execution/configurations/coverage/CoverageEnabledConfiguration.java index 00829bf0f8dd..6b7216506555 100644 --- a/plugins/coverage-common/src/com/intellij/execution/configurations/coverage/CoverageEnabledConfiguration.java +++ b/plugins/coverage-common/src/com/intellij/execution/configurations/coverage/CoverageEnabledConfiguration.java @@ -147,8 +147,8 @@ public abstract class CoverageEnabledConfiguration implements JDOMExternalizable // coverage runner final String runnerId = element.getAttributeValue(COVERAGE_RUNNER); - myCoverageRunner = null; if (runnerId != null) { + myCoverageRunner = null; for (CoverageRunner coverageRunner : CoverageRunner.EP_NAME.getExtensionList()) { if (Comparing.strEqual(coverageRunner.getId(), runnerId)) { myCoverageRunner = coverageRunner; diff --git a/plugins/coverage/testData/simple/.idea/runConfigurations/foo_in_simple.xml b/plugins/coverage/testData/simple/.idea/runConfigurations/foo_in_simple.xml new file mode 100644 index 000000000000..fa8eb0fe98a9 --- /dev/null +++ b/plugins/coverage/testData/simple/.idea/runConfigurations/foo_in_simple.xml @@ -0,0 +1,18 @@ + + + + + + + + + \ No newline at end of file diff --git a/plugins/coverage/testSrc/com/intellij/coverage/CoverageRunConfigTest.kt b/plugins/coverage/testSrc/com/intellij/coverage/CoverageRunConfigTest.kt new file mode 100644 index 000000000000..3ce30d638f9d --- /dev/null +++ b/plugins/coverage/testSrc/com/intellij/coverage/CoverageRunConfigTest.kt @@ -0,0 +1,45 @@ +// Copyright 2000-2023 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +package com.intellij.coverage + +import com.intellij.execution.RunManager +import com.intellij.execution.configurations.RunConfigurationBase +import com.intellij.execution.configurations.coverage.CoverageEnabledConfiguration +import com.intellij.execution.configurations.coverage.JavaCoverageEnabledConfiguration +import org.junit.Assert + +class CoverageRunConfigTest : CoverageIntegrationBaseTest() { + fun `test coverage run config creation`() { + val runManager = RunManager.getInstance(project) + val runConfig = runManager.findConfigurationByName("foo in simple")?.configuration as RunConfigurationBase<*> + val coverageConfig = CoverageEnabledConfiguration.getOrCreate(runConfig) + coverageConfig as JavaCoverageEnabledConfiguration + + Assert.assertFalse(coverageConfig.isBranchCoverageEnabled) + Assert.assertFalse(coverageConfig.isTrackPerTestCoverage) + Assert.assertFalse(coverageConfig.isTrackTestFolders) + Assert.assertTrue(coverageConfig.coverageRunner is IDEACoverageRunner) + val includeConfigPattens = coverageConfig.patterns!! + Assert.assertEquals(1, includeConfigPattens.size) + Assert.assertEquals("foo.*", includeConfigPattens[0]) + Assert.assertTrue(coverageConfig.excludePatterns.isNullOrEmpty()) + Assert.assertNull(coverageConfig.currentCoverageSuite) + + val suite = JavaCoverageEngine.getInstance().createCoverageSuite(coverageConfig.coverageRunner!!, + coverageConfig.name, + DefaultCoverageFileProvider(coverageConfig.coverageFilePath), + coverageConfig) + suite as JavaCoverageSuite + + Assert.assertFalse(suite.isBranchCoverage) + Assert.assertFalse(suite.isCoverageByTestEnabled) + Assert.assertTrue(suite.isCoverageByTestApplicable) + Assert.assertFalse(suite.isTrackTestFolders) + Assert.assertTrue(suite.runner is IDEACoverageRunner) + Assert.assertTrue(suite.coverageEngine is JavaCoverageEngine) + val includePattens = suite.includeFilters!! + Assert.assertNotSame(includeConfigPattens, includePattens) + Assert.assertEquals(1, includeConfigPattens.size) + Assert.assertEquals("foo.*", includeConfigPattens[0]) + Assert.assertTrue(suite.excludePatterns.isNullOrEmpty()) + } +}