我试图让Cobertura与Maven和Scala合作开展一个非常简单的示例项目.这是我的pom:
编辑:同时,我发现这个pom相当糟糕.如果您正在寻找更好的示例,请参阅接受答案中的示例.
4.0.0 sandbox sandbox 1.0-SNAPSHOT 2.10.4 scala-tools.org Scala-Tools Maven2 Repository http://scala-tools.org/repo-releases scala-tools.org Scala-Tools Maven2 Repository http://scala-tools.org/repo-releases org.scala-lang scala-library ${scala.version} org.scalatest scalatest_2.10 2.2.4 test src/main/scala src/test/scala org.scala-tools maven-scala-plugin compile testCompile ${scala.version} -target:jvm-1.5 org.apache.maven.plugins maven-surefire-plugin 2.7 true org.scalatest scalatest-maven-plugin 1.0 ${project.build.directory}/surefire-reports . WDF TestSuite.txt test test org.codehaus.mojo cobertura-maven-plugin 2.7 package clean cobertura org.scala-tools maven-scala-plugin ${scala.version} org.codehaus.mojo cobertura-maven-plugin 2.7 xml
我禁用了surefire,启用了Scalatest,测试确实被执行了.
我将Maven Cobertura插件添加到pom的构建和报告部分.我跑的时候
mvn clean install cobertura:cobertura -Dcobertura.report.format=xml
我确实得到了一份报道 - 报告说没有任何内容,报道是0%.
现在我尝试了各种各样的东西:我玩了执行部分,我将内容从构建移动到报告部分,反之亦然,我尝试了不同的Maven目标.这一切都是徒劳的 - 要么没有创建报告,要么报告0%的报道.
我甚至尝试过Scoverage!但结果相似.
所以我想我犯了一些非常基本的错误.任何人都可以指点我吗?
经过大量的尝试,我找到了解决方案.问题似乎是构建部分中的maven-scala-plugin依赖项.但是由于上面显示的pom有很多问题,我在这里发布新版本,它有效.(至少对于非常小的示例项目.通过我真实的,更大的项目,我遇到了新的问题.)
4.0.0 sandbox sandbox 1.0-SNAPSHOT 2.10.4 org.scala-lang scala-library ${scala.version} org.scalatest scalatest_2.10 2.2.4 test src/main/scala src/test/scala net.alchim31.maven scala-maven-plugin 3.1.6 compile testCompile -nobootcp org.apache.maven.plugins maven-surefire-plugin 2.18.1 true org.scalatest scalatest-maven-plugin 1.0 test test test org.scoverage scoverage-maven-plugin 1.1.1 ${scala.version} true org.scoverage scoverage-maven-plugin 1.1.1 ${scala.version} true report
希望这有助于某人!