Skip to content

Commit 256a85b

Browse files
author
magnolia
committed
Added tests for ScoverageHtmlWriter.scala
1 parent 64e617c commit 256a85b

File tree

3 files changed

+73
-0
lines changed

3 files changed

+73
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package coverage.sample
2+
3+
class Class1 {
4+
def msg_coverage = println("measure coverage of code")
5+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package coverage.sample
2+
3+
class Class2 {
4+
def msg_test = println("test code")
5+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
package scoverage
2+
3+
import java.io._
4+
import java.util.UUID
5+
import scala.io.Source
6+
7+
import scala.xml.XML
8+
9+
import scoverage.report.ScoverageHtmlWriter
10+
11+
import org.scalatest.FunSuite
12+
13+
class ScoverageHtmlWriterTest extends FunSuite {
14+
15+
test("HTML coverage report has been created correctly") {
16+
17+
def tempDir(): File = {
18+
val dir = new File(IOUtils.getTempDirectory, UUID.randomUUID().toString)
19+
dir.mkdirs()
20+
dir.deleteOnExit()
21+
dir
22+
}
23+
24+
val coverage = Coverage()
25+
26+
val class2 = getClass.getResource("forHtmlWriter/src/main/scala/subdir/Class2.scala").getFile()
27+
val class1 = getClass.getResource("forHtmlWriter/src/main/scala/Class1.scala").getFile()
28+
29+
coverage.add(
30+
Statement(class2,
31+
Location("coverage.sample", "Class2","Class", ClassType.Object, "msg_test", class2),
32+
2, 57, 77, 4, "scala.this.Predef.println("test code")",
33+
"scala.Predef.println", "Apply", false, 0)
34+
)
35+
36+
coverage.add(
37+
Statement(class1,
38+
Location("coverage.sample", "Class1","Class", ClassType.Object, "msg_coverage", class1),
39+
1, 61, 96, 4, "scala.this.Predef.println("measure coverage of code")",
40+
"scala.Predef.println", "Apply", false, 0)
41+
)
42+
43+
val dir = getClass.getResource("forHtmlWriter/src/main/scala/").getFile()
44+
val outputDir = tempDir()
45+
46+
val htmlWriter = new ScoverageHtmlWriter(new File(dir), outputDir)
47+
htmlWriter.write(coverage)
48+
49+
val htmls = List("overview.html", "coverage.sample.html")
50+
51+
for (html <- htmls) {
52+
val xml = XML.loadString(Source.fromFile(new File(outputDir, html)).getLines.mkString)
53+
val links = for (node <- xml \\ "a") yield {
54+
node.attribute("href") match {
55+
case Some(url) => url.toString
56+
case None => fail()
57+
}
58+
}
59+
60+
assert( links.toSet == Set("Class1.scala.html", "subdir/Class2.scala.html") )
61+
}
62+
}
63+
}

0 commit comments

Comments
 (0)