功能测试的代码覆盖率

时间:2017-05-10 18:09:41

标签: java rest code-coverage functional-testing test-coverage

我有一个Java RESTful API。我在每个端点上使用REST Assured进行功能测试 当REST Assured(或任何类似工具)调用API时,有没有办法获取场景背后使用的类/方法(控制器,服务,DAO /存储库等)的代码覆盖率? (我想API应该从一些代理开始,或者报告在停止之前会发生什么?)。

2 个答案:

答案 0 :(得分:0)

我最终使用JaCoCo } SonarQube(Java代理和Maven插件)

在Sikandar的评论后编辑:
在我的情况下,它是一个Spring Boot应用程序,所以当我运行jar文件时,我添加了选项
-javaagent:/myapp/lib/jacoco.agent-0.7.9.jar=destfile=/myapp/coverage-reports/jacoco-at.exec
应用程序停止时会生成报告。然后我将SonarQube配置为使用文件/myapp/coverage-reports/jacoco-at.exec进行分析

答案 1 :(得分:0)

您还可以使用像Sealights这样的服务,因为这是我们解决的问题(我在那里工作) - 获得超出单元测试的代码覆盖率,这意味着您的所有功能,Selenium,集成,性能测试都会被报告到一个仪表板。

请注意,您使用的解决方案(JaCoCo)可以,但它有一些缺点,例如:

  • 仅适用于Java。
  • 您必须从多台计算机上收集保险并将其统一(假设您有微服务或许多服务器)才能获得最终报告。
  • 只有当流程失败时才能提供保险范围,因此如果您进行了很长时间的测试,可能需要几个小时才能获得初始信息。

  • 您无法看到后端和后端的覆盖范围。前端代码在一个位置。

基本上在Sealights中我们解决了所有这些问题,帮助您将测试集中在代码中已更改的区域,提供状态报告将向您展示您的团队的工作方式,包括如何优化测试的提示以及其他一些很酷的功能。

最后但同样重要的是,目前我们支持Java,NodeJS,基于浏览器的测试(即Selenium),.NET和Python。

快乐编程; - )