Skip to content

Commit b1a6378

Browse files
author
Oleksii Lisikh
committed
More tests for the project with multiple test tasks
1 parent 0e75f25 commit b1a6378

File tree

7 files changed

+150
-7
lines changed

7 files changed

+150
-7
lines changed

src/functionalTest/java/org.scoverage/ScalaSingleModuleWithMultipleTestTasksTest.java

Lines changed: 128 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,48 @@ public ScalaSingleModuleWithMultipleTestTasksTest() {
88
super("scala-single-module-multiple-test-tasks");
99
}
1010

11+
@Test
12+
public void test() {
13+
14+
AssertableBuildResult result = dryRun("clean", "test");
15+
16+
result.assertTaskDoesntExist(ScoveragePlugin.getCOMPILE_NAME());
17+
result.assertTaskDoesntExist(ScoveragePlugin.getREPORT_NAME());
18+
result.assertTaskDoesntExist(ScoveragePlugin.getAGGREGATE_NAME());
19+
result.assertTaskDoesntExist(ScoveragePlugin.getCHECK_NAME());
20+
}
21+
22+
@Test
23+
public void build() {
24+
25+
AssertableBuildResult result = dryRun("clean", "build");
26+
27+
result.assertTaskDoesntExist(ScoveragePlugin.getCOMPILE_NAME());
28+
result.assertTaskDoesntExist(ScoveragePlugin.getREPORT_NAME());
29+
result.assertTaskDoesntExist(ScoveragePlugin.getAGGREGATE_NAME());
30+
result.assertTaskDoesntExist(ScoveragePlugin.getCHECK_NAME());
31+
}
32+
33+
@Test
34+
public void reportScoverage() {
35+
36+
AssertableBuildResult result = dryRun("clean", ScoveragePlugin.getREPORT_NAME());
37+
38+
result.assertTaskExists(ScoveragePlugin.getCOMPILE_NAME());
39+
result.assertTaskExists(ScoveragePlugin.getREPORT_NAME());
40+
result.assertTaskDoesntExist(ScoveragePlugin.getAGGREGATE_NAME());
41+
result.assertTaskDoesntExist(ScoveragePlugin.getCHECK_NAME());
42+
}
43+
44+
@Test
45+
public void aggregateScoverage() {
46+
47+
AssertableBuildResult result = runAndFail("clean", ScoveragePlugin.getAGGREGATE_NAME());
48+
49+
result.assertNoTasks();
50+
}
51+
52+
1153
@Test
1254
public void checkScoverage() throws Exception {
1355

@@ -24,6 +66,92 @@ public void checkScoverage() throws Exception {
2466
assertCoverage(100.0);
2567
}
2668

69+
@Test
70+
public void checkScoverageIntTest() throws Exception {
71+
AssertableBuildResult result = runAndFail("clean", "-x", "reportTestScoverage", ScoveragePlugin.getCHECK_NAME());
72+
73+
result.assertTaskSucceeded(ScoveragePlugin.getCOMPILE_NAME());
74+
result.assertTaskDoesntExist("reportTestScoverage");
75+
result.assertTaskSucceeded("reportIntTestScoverage");
76+
result.assertTaskSucceeded(ScoveragePlugin.getREPORT_NAME());
77+
result.assertTaskFailed(ScoveragePlugin.getCHECK_NAME());
78+
result.assertTaskDoesntExist(ScoveragePlugin.getAGGREGATE_NAME());
79+
80+
assertReportFilesExist();
81+
assertCoverage(50.0);
82+
}
83+
84+
85+
@Test
86+
public void checkScoverageFails() throws Exception {
87+
88+
AssertableBuildResult result = runAndFail("clean", ScoveragePlugin.getCHECK_NAME(),
89+
"intTest", "--tests", "org.hello.TestNothingSuite",
90+
"-x", "test");
91+
92+
result.assertTaskSucceeded(ScoveragePlugin.getCOMPILE_NAME());
93+
result.assertTaskSucceeded(ScoveragePlugin.getREPORT_NAME());
94+
result.assertTaskFailed(ScoveragePlugin.getCHECK_NAME());
95+
result.assertTaskDoesntExist(ScoveragePlugin.getAGGREGATE_NAME());
96+
97+
assertReportFilesExist();
98+
assertCoverage(0.0);
99+
}
100+
101+
@Test
102+
public void reportScoverageWithExcludedClasses() throws Exception {
103+
104+
AssertableBuildResult result = run("clean", "-PexcludedFile=.*", ScoveragePlugin.getREPORT_NAME());
105+
106+
result.assertTaskSucceeded(ScoveragePlugin.getCOMPILE_NAME());
107+
result.assertTaskSucceeded(ScoveragePlugin.getREPORT_NAME());
108+
result.assertTaskDoesntExist(ScoveragePlugin.getCHECK_NAME());
109+
result.assertTaskDoesntExist(ScoveragePlugin.getAGGREGATE_NAME());
110+
111+
Assert.assertTrue(resolve(reportDir(), "index.html").exists());
112+
Assert.assertFalse(resolve(reportDir(), "src/main/scala/org/hello/World.scala.html").exists());
113+
assertCoverage(100.0); // coverage is 100 since no classes are covered
114+
115+
// compiled class should exist in the default classes directory, but not in scoverage
116+
Assert.assertTrue(resolve(buildDir(), "classes/scala/main/org/hello/World.class").exists());
117+
Assert.assertFalse(resolve(buildDir(), "classes/scala/scoverage/org/hello/World.class").exists());
118+
}
119+
120+
@Test
121+
public void reportScoverageWithoutNormalCompilation() throws Exception {
122+
123+
AssertableBuildResult result = run("clean", ScoveragePlugin.getREPORT_NAME(),
124+
"-x", "compileScala");
125+
126+
result.assertTaskSkipped("compileScala");
127+
result.assertTaskSucceeded(ScoveragePlugin.getCOMPILE_NAME());
128+
result.assertTaskSucceeded(ScoveragePlugin.getREPORT_NAME());
129+
result.assertTaskDoesntExist(ScoveragePlugin.getCHECK_NAME());
130+
result.assertTaskDoesntExist(ScoveragePlugin.getAGGREGATE_NAME());
131+
132+
assertReportFilesExist();
133+
assertCoverage(100.0);
134+
135+
Assert.assertTrue(resolve(buildDir(), "classes/scala/main/org/hello/World.class").exists());
136+
Assert.assertFalse(resolve(buildDir(), "classes/scala/scoverage/org/hello/World.class").exists());
137+
}
138+
139+
@Test
140+
public void reportScoverageWithoutNormalCompilationAndWithExcludedClasses() throws Exception {
141+
142+
AssertableBuildResult result = run("clean", ScoveragePlugin.getREPORT_NAME(),
143+
"-PexcludedFile=.*", "-x", "compileScala");
144+
145+
Assert.assertTrue(resolve(reportDir(), "index.html").exists());
146+
Assert.assertFalse(resolve(reportDir(), "src/main/scala/org/hello/World.scala.html").exists());
147+
assertCoverage(100.0); // coverage is 100 since no classes are covered
148+
149+
// compiled class should exist in the default classes directory, but not in scoverage
150+
Assert.assertTrue(resolve(buildDir(), "classes/scala/main/org/hello/World.class").exists());
151+
Assert.assertFalse(resolve(buildDir(), "classes/scala/scoverage/org/hello/World.class").exists());
152+
}
153+
154+
27155
private void assertReportFilesExist() {
28156

29157
Assert.assertTrue(resolve(reportDir(), "index.html").exists());

src/functionalTest/resources/projects/scala-single-module-multiple-test-tasks/build.gradle

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,9 @@ check.dependsOn(intTest)
6666
intTest.mustRunAfter(test)
6767

6868
scoverage {
69-
minimumRate = 0.3
69+
minimumRate = 0.6
7070
}
7171

72+
if (hasProperty("excludedFile")) {
73+
scoverage.excludedFiles = [excludedFile]
74+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package org.hello
2+
3+
import org.junit.runner.RunWith
4+
import org.scalatest.FunSuite
5+
import org.scalatest.junit.JUnitRunner
6+
7+
@RunWith(classOf[JUnitRunner])
8+
class TestNothingSuite extends FunSuite {
9+
10+
test("nothing") {
11+
}
12+
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,6 @@ import org.scalatest.junit.JUnitRunner
88
class WorldIntSuite extends FunSuite {
99

1010
test("bar") {
11-
new World().bar
11+
new World().bar()
1212
}
1313
}

src/functionalTest/resources/projects/scala-single-module-multiple-test-tasks/src/main/scala/org/hello/World.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@ package org.hello
22

33
class World {
44

5-
def foo: String = {
5+
def foo(): String = {
66
val s = "a" + "b"
77
s
88
}
99

10-
def bar: String = "bar"
10+
def bar(): String = "bar"
1111
}

src/functionalTest/resources/projects/scala-single-module-multiple-test-tasks/src/test/scala/org/hello/WorldSuite.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,6 @@ import org.scalatest.junit.JUnitRunner
88
class WorldSuite extends FunSuite {
99

1010
test("foo") {
11-
new World().foo
11+
new World().foo()
1212
}
1313
}

src/main/groovy/org/scoverage/ScoverageReport.groovy

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import org.gradle.api.tasks.CacheableTask
66
import org.gradle.api.tasks.Input
77
import org.gradle.api.tasks.OutputDirectory
88
import org.gradle.api.tasks.TaskAction
9+
import scala.collection.JavaConverters
910
import scala.collection.Seq
1011
import scala.collection.Set
1112
import scoverage.Coverage
@@ -46,8 +47,7 @@ class ScoverageReport extends DefaultTask {
4647
project.logger.info("[scoverage] Could not find coverage file, skipping...")
4748
} else {
4849
File[] array = IOUtils.findMeasurementFiles(dataDir.get())
49-
// TODO: patch scoverage core to use a consistent collection type?
50-
Seq<File> measurementFiles = scala.collection.JavaConversions.asScalaBuffer(Arrays.asList(array))
50+
Seq<File> measurementFiles = JavaConverters.asScalaBuffer(Arrays.asList(array))
5151

5252
Coverage coverage = Serializer.deserialize(coverageFile)
5353

0 commit comments

Comments
 (0)