From d754ede393839c21dbb8241d065057b7cb613f4d Mon Sep 17 00:00:00 2001 From: Eyal Roth Date: Sun, 22 Dec 2019 18:14:57 +0200 Subject: [PATCH 1/2] Add an ignored test-case for composite build (ignored since it isn't supported yet) --- .../org.scoverage/CompositeBuildTest.java | 46 +++++++++++++++++++ .../composite-build/proj1/build.gradle | 32 +++++++++++++ .../composite-build/proj1/settings.gradle | 0 .../main/scala/org/composite/proj1/Foo.scala | 7 +++ .../scala/org/composite/proj1/FooSuite.scala | 14 ++++++ .../composite-build/proj2/build.gradle | 30 ++++++++++++ .../scala/org/composite/proj2/Reporter.scala | 19 ++++++++ .../org/composite/proj2/ReporterSuite.scala | 16 +++++++ 8 files changed, 164 insertions(+) create mode 100644 src/functionalTest/java/org.scoverage/CompositeBuildTest.java create mode 100644 src/functionalTest/resources/projects/composite-build/proj1/build.gradle create mode 100644 src/functionalTest/resources/projects/composite-build/proj1/settings.gradle create mode 100644 src/functionalTest/resources/projects/composite-build/proj1/src/main/scala/org/composite/proj1/Foo.scala create mode 100644 src/functionalTest/resources/projects/composite-build/proj1/src/test/scala/org/composite/proj1/FooSuite.scala create mode 100644 src/functionalTest/resources/projects/composite-build/proj2/build.gradle create mode 100644 src/functionalTest/resources/projects/composite-build/proj2/src/main/scala/org/composite/proj2/Reporter.scala create mode 100644 src/functionalTest/resources/projects/composite-build/proj2/src/test/scala/org/composite/proj2/ReporterSuite.scala diff --git a/src/functionalTest/java/org.scoverage/CompositeBuildTest.java b/src/functionalTest/java/org.scoverage/CompositeBuildTest.java new file mode 100644 index 0000000..86dd695 --- /dev/null +++ b/src/functionalTest/java/org.scoverage/CompositeBuildTest.java @@ -0,0 +1,46 @@ +package org.scoverage; + +import org.junit.Ignore; +import org.junit.Test; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +/** + * Tests are currently ignored as composite builds are not supported yet. + * + * See https://github.com/scoverage/gradle-scoverage/issues/98 + */ +public class CompositeBuildTest extends ScoverageFunctionalTest { + + public CompositeBuildTest() { + super("composite-build"); + } + + @Ignore + @Test + public void buildComposite() { + + runComposite("clean", "build"); + } + + @Ignore + @Test + public void reportComposite() { + + runComposite("clean", ScoveragePlugin.getREPORT_NAME()); + } + + private AssertableBuildResult runComposite(String... arguments) { + + List fullArguments = new ArrayList(); + fullArguments.add("-p"); + fullArguments.add("proj1"); + fullArguments.add("--include-build"); + fullArguments.add("../proj2"); + fullArguments.addAll(Arrays.asList(arguments)); + + return run(fullArguments.toArray(new String[0])); + } +} diff --git a/src/functionalTest/resources/projects/composite-build/proj1/build.gradle b/src/functionalTest/resources/projects/composite-build/proj1/build.gradle new file mode 100644 index 0000000..d0e32d3 --- /dev/null +++ b/src/functionalTest/resources/projects/composite-build/proj1/build.gradle @@ -0,0 +1,32 @@ +plugins { + id 'org.scoverage' +} + +repositories { + jcenter() +} + +description = 'a single-module Scala project taking part in a composite build (1)' + +apply plugin: 'java' +apply plugin: 'scala' + + +group "org.composite" +version '1.0' + +dependencies { + compile group: 'org.scala-lang', name: 'scala-library', version: "${scalaVersionMajor}.${scalaVersionMinor}.${scalaVersionBuild}" + + testRuntime group: 'org.junit.vintage', name: 'junit-vintage-engine', version: junitVersion + testCompile group: 'org.junit.platform', name: 'junit-platform-runner', version: junitPlatformVersion + + testCompile group: 'org.scalatest', name: "scalatest_${scalaVersionMajor}.${scalaVersionMinor}", version: scalatestVersion + + compile "org.composite:proj2:1.0" +} + +test { + useJUnitPlatform() +} + diff --git a/src/functionalTest/resources/projects/composite-build/proj1/settings.gradle b/src/functionalTest/resources/projects/composite-build/proj1/settings.gradle new file mode 100644 index 0000000..e69de29 diff --git a/src/functionalTest/resources/projects/composite-build/proj1/src/main/scala/org/composite/proj1/Foo.scala b/src/functionalTest/resources/projects/composite-build/proj1/src/main/scala/org/composite/proj1/Foo.scala new file mode 100644 index 0000000..cc5333e --- /dev/null +++ b/src/functionalTest/resources/projects/composite-build/proj1/src/main/scala/org/composite/proj1/Foo.scala @@ -0,0 +1,7 @@ +package org.composite.proj1 + +import org.composite.proj2.Reporter + +class Foo { + def bar(): String = "bar" +} \ No newline at end of file diff --git a/src/functionalTest/resources/projects/composite-build/proj1/src/test/scala/org/composite/proj1/FooSuite.scala b/src/functionalTest/resources/projects/composite-build/proj1/src/test/scala/org/composite/proj1/FooSuite.scala new file mode 100644 index 0000000..370252a --- /dev/null +++ b/src/functionalTest/resources/projects/composite-build/proj1/src/test/scala/org/composite/proj1/FooSuite.scala @@ -0,0 +1,14 @@ +package org.composite.proj1 + +import org.scalatest.FunSuite +import org.junit.runner.RunWith +import org.scalatest.junit.JUnitRunner + +@RunWith(classOf[JUnitRunner]) +class FooSuite extends FunSuite { + + test("bar"){ + + new Foo().bar() + } +} \ No newline at end of file diff --git a/src/functionalTest/resources/projects/composite-build/proj2/build.gradle b/src/functionalTest/resources/projects/composite-build/proj2/build.gradle new file mode 100644 index 0000000..b86570e --- /dev/null +++ b/src/functionalTest/resources/projects/composite-build/proj2/build.gradle @@ -0,0 +1,30 @@ +plugins { + id 'org.scoverage' +} + +repositories { + jcenter() +} + +description = 'a single-module Scala project taking part in a composite build (2)' + +apply plugin: 'java' +apply plugin: 'scala' + + +group "org.composite" +version '1.0' + +dependencies { + compile group: 'org.scala-lang', name: 'scala-library', version: "${scalaVersionMajor}.${scalaVersionMinor}.${scalaVersionBuild}" + + testRuntime group: 'org.junit.vintage', name: 'junit-vintage-engine', version: junitVersion + testCompile group: 'org.junit.platform', name: 'junit-platform-runner', version: junitPlatformVersion + + testCompile group: 'org.scalatest', name: "scalatest_${scalaVersionMajor}.${scalaVersionMinor}", version: scalatestVersion +} + +test { + useJUnitPlatform() +} + diff --git a/src/functionalTest/resources/projects/composite-build/proj2/src/main/scala/org/composite/proj2/Reporter.scala b/src/functionalTest/resources/projects/composite-build/proj2/src/main/scala/org/composite/proj2/Reporter.scala new file mode 100644 index 0000000..11ef036 --- /dev/null +++ b/src/functionalTest/resources/projects/composite-build/proj2/src/main/scala/org/composite/proj2/Reporter.scala @@ -0,0 +1,19 @@ +package org.composite.proj2 + +class Reporter { + + def report(rawData: String): Report = { + Report(1,2) + } + + class InnerReporter { + + def lala(): Unit = { + + val x = 1 + 1 + x + } + } +} + +case class Report(id: Long, count: Int) \ No newline at end of file diff --git a/src/functionalTest/resources/projects/composite-build/proj2/src/test/scala/org/composite/proj2/ReporterSuite.scala b/src/functionalTest/resources/projects/composite-build/proj2/src/test/scala/org/composite/proj2/ReporterSuite.scala new file mode 100644 index 0000000..89de304 --- /dev/null +++ b/src/functionalTest/resources/projects/composite-build/proj2/src/test/scala/org/composite/proj2/ReporterSuite.scala @@ -0,0 +1,16 @@ +package org.composite.proj2 + +import org.scalatest.FunSuite +import org.junit.runner.RunWith +import org.scalatest.junit.JUnitRunner + +@RunWith(classOf[JUnitRunner]) +class ReporterSuite extends FunSuite { + + test("report"){ + + val report = new Reporter().report("x") + + assertResult(Report(1, 2))(report) + } +} From 161bad9c26347fa43e89fec52f4c17f03339930a Mon Sep 17 00:00:00 2001 From: Eyal Roth Date: Sun, 22 Dec 2019 18:15:19 +0200 Subject: [PATCH 2/2] Update README to mention that composite builds are not currently supported --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 20d82f9..4e09b2c 100644 --- a/README.md +++ b/README.md @@ -35,6 +35,8 @@ You can find instructions on how to apply the plugin at http://plugins.gradle.or `gradle checkScoverage` will automatically invoke `reportScoverage` but it won't generate aggregated reports. In order to check coverage of aggregated reports one should use `gradle checkScoverage aggregateScoverage`. + +**Note:** The plugin is not compatible with composite builds. For more information, see [the relevant issue](https://github.com/scoverage/gradle-scoverage/issues/98). ### Configuration