[coverage] Add coverage run config creation test

GitOrigin-RevId: 4498b11fa17ba600d01cbfef8dce614fe94d26e7
This commit is contained in:
Maksim Zuev
2023-12-19 17:24:01 +00:00
committed by intellij-monorepo-bot
parent ffda9d1b15
commit db2415285f
3 changed files with 64 additions and 1 deletions
@@ -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;
@@ -0,0 +1,18 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="foo in simple" type="JUnit" factoryName="JUnit" nameIsGenerated="true">
<module name="simple" />
<extension name="coverage">
<pattern>
<option name="PATTERN" value="foo.*" />
<option name="ENABLED" value="true" />
</pattern>
</extension>
<option name="PACKAGE_NAME" value="foo" />
<option name="MAIN_CLASS_NAME" value="" />
<option name="METHOD_NAME" value="" />
<option name="TEST_OBJECT" value="package" />
<method v="2">
<option name="Make" enabled="true" />
</method>
</configuration>
</component>
@@ -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())
}
}