7

我们决定尝试将 Spock 作为我们基于 Java 的 EE 应用程序的测试框架。目前我们有一个基于 jenkins + maven + jacoco 部署的 CI 基础设施。

问:问题是将 spock 与所有这些集成的最佳方式是什么?有什么建议和最佳实践吗?

4

2 回答 2

4

鉴于您的工具链,与 Java/JUnit 相比,唯一不同的是让 Groovy(测试)编译在 Maven 中工作(请参阅spock-example项目)。除此之外,您不必做任何特别的事情,因为 Spock 只是一个自动激活的自定义 JUnit 运行器。您将获得相同的报告等。您甚至可以在同一个源目录中进行 Spock 和 JUnit 测试并一起运行它们。

于 2013-05-08T15:44:51.693 回答
2

实际上,您可能无法与 Sonar 集成。Sonar Surefire 传感器将成功找到您的 Surefire 报告;但是,传感器会尝试链接到测试源以发布到 Sonar。执行此操作时,它假定文件扩展名为 .java。因此,您将在构建中看到如下所示的输出:

[INFO] [13:00:34.734] 传感器 SurefireSensor ...
[INFO] [13:00:34.735] 解析 /home/amcdowel/accurev/projectFoo/target/surefire-reports
[WARN] [13:00:34.747]找不到资源:com.abc.monitor.app.model.MonitorTest

您的 Spock 测试生成的代码覆盖率将成功报告在您的 Sonar 仪表板中,但不会包括单元测试的数量和成功/错误计数。

于 2015-03-11T20:15:11.693 回答