-
Notifications
You must be signed in to change notification settings - Fork 53
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Implemented task to print coverage to the log
Added task with name `koverLog`, configured by `log { }` block in report variant's configuration Resolves #229
- Loading branch information
Showing
22 changed files
with
701 additions
and
22 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
153 changes: 153 additions & 0 deletions
153
...nctionalTest/kotlin/kotlinx/kover/gradle/plugin/test/functional/cases/LoggingTaskTests.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,153 @@ | ||
/* | ||
* Copyright 2017-2023 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license. | ||
*/ | ||
|
||
package kotlinx.kover.gradle.plugin.test.functional.cases | ||
|
||
import kotlinx.kover.gradle.plugin.commons.CoverageToolVendor | ||
import kotlinx.kover.gradle.plugin.dsl.AggregationType | ||
import kotlinx.kover.gradle.plugin.dsl.GroupingEntityType | ||
import kotlinx.kover.gradle.plugin.dsl.MetricType | ||
import kotlinx.kover.gradle.plugin.test.functional.framework.configurator.BuildConfigurator | ||
import kotlinx.kover.gradle.plugin.test.functional.framework.starter.GeneratedTest | ||
import kotlin.test.assertEquals | ||
|
||
internal class LoggingTaskTests { | ||
@GeneratedTest | ||
fun BuildConfigurator.testCaching() { | ||
addProjectWithKover { | ||
sourcesFrom("simple") | ||
useLocalCache() | ||
} | ||
|
||
run(":koverLog", "--build-cache") { | ||
checkOutcome("koverLog", "SUCCESS") | ||
checkOutcome("koverPrintCoverage", "SUCCESS") | ||
} | ||
run(":koverLog", "--build-cache") { | ||
checkOutcome("koverLog", "UP-TO-DATE") | ||
checkOutcome("koverPrintCoverage", "SUCCESS") | ||
} | ||
run("clean", "--build-cache") | ||
run(":koverLog", "--build-cache") { | ||
checkOutcome("koverLog", "FROM-CACHE") | ||
checkOutcome("koverPrintCoverage", "SUCCESS") | ||
} | ||
} | ||
|
||
@GeneratedTest | ||
fun BuildConfigurator.testDefaultFormat() { | ||
addProjectWithKover { | ||
sourcesFrom("simple") | ||
} | ||
|
||
run(":koverLog") { | ||
checkOutcome("koverPrintCoverage", "SUCCESS") | ||
taskOutput("koverPrintCoverage") { | ||
assertEquals("application line coverage: 57.1429%\n\n", this) | ||
} | ||
} | ||
} | ||
|
||
@GeneratedTest(tool = CoverageToolVendor.JACOCO) | ||
fun BuildConfigurator.testDefaultFormatJacoco() { | ||
addProjectWithKover { | ||
sourcesFrom("simple") | ||
} | ||
|
||
run(":koverLog") { | ||
checkOutcome("koverPrintCoverage", "SUCCESS") | ||
taskOutput("koverPrintCoverage") { | ||
assertEquals("application line coverage: 50%\n\n", this) | ||
} | ||
} | ||
} | ||
|
||
@GeneratedTest | ||
fun BuildConfigurator.testHeaderAndFormat() { | ||
addProjectWithKover { | ||
sourcesFrom("simple") | ||
|
||
koverReport { | ||
defaults { | ||
log { | ||
header = "Custom header" | ||
format = "My format for <entity> is <value>" | ||
} | ||
} | ||
} | ||
} | ||
|
||
run(":koverLog") { | ||
checkOutcome("koverPrintCoverage", "SUCCESS") | ||
taskOutput("koverPrintCoverage") { | ||
assertEquals("Custom header\nMy format for application is 57.1429\n\n", this) | ||
} | ||
} | ||
} | ||
|
||
@GeneratedTest | ||
fun BuildConfigurator.testCustomFormatKover() { | ||
addProjectWithKover { | ||
sourcesFrom("simple") | ||
|
||
koverReport { | ||
defaults { | ||
log { | ||
header = "Coverage for classes:" | ||
format = "Class <entity> covered instructions=<value>" | ||
groupBy = GroupingEntityType.CLASS | ||
aggregationForGroup = AggregationType.COVERED_COUNT | ||
coverageUnits = MetricType.INSTRUCTION | ||
} | ||
} | ||
} | ||
} | ||
|
||
run(":koverLog") { | ||
checkOutcome("koverPrintCoverage", "SUCCESS") | ||
taskOutput("koverPrintCoverage") { | ||
assertEquals( | ||
"Coverage for classes:\n" + | ||
"Class org.jetbrains.ExampleClass covered instructions=5\n" + | ||
"Class org.jetbrains.SecondClass covered instructions=5\n" + | ||
"Class org.jetbrains.Unused covered instructions=0\n\n", | ||
this | ||
) | ||
} | ||
} | ||
} | ||
|
||
@GeneratedTest(tool = CoverageToolVendor.JACOCO) | ||
fun BuildConfigurator.testCustomFormatJacoco() { | ||
addProjectWithKover { | ||
sourcesFrom("simple") | ||
|
||
koverReport { | ||
defaults { | ||
log { | ||
header = "Coverage for classes:" | ||
format = "Class <entity> covered instructions=<value>" | ||
groupBy = GroupingEntityType.CLASS | ||
aggregationForGroup = AggregationType.COVERED_COUNT | ||
coverageUnits = MetricType.INSTRUCTION | ||
} | ||
} | ||
} | ||
} | ||
|
||
run(":koverLog") { | ||
checkOutcome("koverPrintCoverage", "SUCCESS") | ||
taskOutput("koverPrintCoverage") { | ||
assertEquals( | ||
"Coverage for classes:\n" + | ||
"Class org.jetbrains.ExampleClass covered instructions=7\n" + | ||
"Class org.jetbrains.SecondClass covered instructions=7\n" + | ||
"Class org.jetbrains.Unused covered instructions=0\n\n", | ||
this | ||
) | ||
} | ||
} | ||
} | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.