将Spock与Jenkins,Sonar整合的最佳实践

时间:2013-05-08 11:06:02

标签: java continuous-integration sonarqube build-automation spock

我们决定尝试将Spock作为基于java的EE应用程序的测试框架。目前,我们已经部署了基于jenkins + maven + jacoco的CI基础架构。

问:问题是将spock与所有这些集成在一起的最佳方法是什么?任何建议,最佳做法?

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:2)

实际上,您可能无法与Sonar集成。 Sonar 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仪表板中,但不会包含单元测试的数量和成功/错误计数。