- 发布
- 苏州华克斯信息科技有限公司
- 电话
- 0512-62382981
- 手机
- 13862561363
- 发布时间
- 2022-10-24 12:21:23
SonarQube和JaCoCo的个人测试代码覆盖率
构建部分
这里不需要修改但是,您应该注意Maven Surefire的任何自定义配置,以确保它也适用于我们要创建的配置文件。在春季宠物诊suo的情况下,这是我们正在写的参考POM的相关部分:
lt;建立gt; lt;插件gt;
...
lt;插件gt;
lt;的groupIdgt; org.apache.maven.plugins lt;/的groupIdgt;
lt;artifactId的gt;行家-万无一失-插件lt;/ artifactId的gt;
lt;版本gt; 2.13 lt;/版本gt;
lt;结构gt;
lt;argLinegt; -XX:-UseSplitVerifier lt;/ argLinegt;
lt;包含gt;
lt;包括gt; ** / * Test.java lt;/包括gt;
lt;包括gt; ** / * Tests.java lt;/包括gt;
lt;/包括gt;
lt;排除gt;
lt;排除gt; ** /它/ * IT.java lt;/排除gt;
lt;/排除gt;
lt;/配置gt;
lt;/插件gt;
...
lt;/插件gt; lt;/建造gt;
这种配置告诉Surefire:1)排除执行单元测试的集成测试(Surefire的双插件,Failsafe涵盖了集成测试);和2)禁用字节码验证器,防止类被调试时的运行时错误(即添加mocks或Toplink增强功能时)。
依赖部分
在本节中,不需要进行任何更改。我们只想注意到,如果您的项目已经在利用JaCoCo收集整合测试覆盖率指标,中国sonarqube经销商,并且明确地指出了本部分中的JaCoCo伪像,那么可以将其留下 - 至今没有确定任何冲突。无论如何,它不应该在这里需要,所以从这个部分删除它可能更安全。
档案部分
所有必需的更改都在本节中。而且它们都非常干净,因为它们都只需要向POM添加一个新的配置文件。此配置文件将为Surefire配置一个特殊侦听器,以确保适当收集每个单独测试用例的覆盖度量。为了保证成功的测试执行,我们将在此保持与POM的构建部分中显示的相同配置。后,配置文件将为包含侦听器代码的伪zao添加新的依赖关系。结果是这样的:
lt;轮廓gt;
lt;! - 使用SonarQube和JaCoCo计算每个测试的覆盖率指标
lt;IDgt;覆盖每次测试lt;/ IDgt;
lt;建立gt;
lt;插件gt;
lt;插件gt;
lt;的groupIdgt; org.apache.maven.plugins lt;/的groupIdgt;
lt;artifactId的gt;行家-万无一失-插件lt;/ artifactId的gt;
lt;版本gt; 2.13 lt;/版本gt;
lt;结构gt;
lt;! - 与常规测试执行目标相同的配置 - gt;
由JaCoCo prepare-agent - gt;配置的lt;! - 加argLine参数
lt;argLinegt; $ {argLine} -XX:-UseSplitVerifier lt;/ argLinegt;
lt;包含gt;
lt;包括gt; ** / * Test.java lt;/包括gt;
lt;包括gt; ** / * Tests.java lt;/包括gt;
lt;/包括gt;
lt;排除gt;
lt;排除gt; ** /它/ * IT.java lt;/排除gt;
lt;/排除gt;
lt;! - 每个测试覆盖所需的新配置 - gt;
lt;性能gt;
lt;属性gt;
lt;名称gt;听者lt;/名称gt;
lt;值gt; org.sonar.java.jacoco.JUnitListener lt;/值gt;
lt;/属性gt;
lt;/属性gt;
lt;/配置gt;
lt;/插件gt;
lt;/插件gt;
lt;/建造gt;
lt;依赖性gt;
lt;依赖性gt;
lt;的groupIdgt; org.codehaus.sonar-plugins.java lt;/的groupIdgt;
lt;artifactId的gt;声纳-jacoco-听众lt;/ artifactId的gt;
lt;版本gt; 2.3 lt;/版本gt;
lt;范围gt;测试lt;/范围gt;
lt;/依赖性gt;
lt;/依赖gt;
lt;/简档gt;
如何在软件开发工作流中构建质量
远见卓识视图, 显示每个测试在运行时的执行时间
假设你是一个希望成长为一家中型科技公司的初创企业--介于30到100工程师之间。招聘是快速发生的, 而且你的代码数量也在快速增长。在较早的阶段, 贵公司专注于证明产品。一切都是规模较小, 你可以循环快速。现在, 随着你的成长, 你有更多的在编写代码和更多的变量的组合。
这是当你注意到产品质量开始恶化,华南sonarqube经销商, 你不能像你希望的那样快速发布代码。在扩展业务时, 有越来越多的变量需要进行调整, 您可能会忽略更多测试的需要, 并在测试上花费更多的时间。
如果你决定聘请一个 QA 经理, 而后者又带来了一批自动化工程师, 你就可以走出困境。硒测试的覆盖率很高。但随着时间的推移, 事情又开始放慢了。所有的自动化和善意, 你建立了硒覆盖开始打破和失败, 它反复暂停软件工厂。
我们开始的地方
当我加入 Shutterstock 时, 我对公司的自动化测试覆盖率印象深刻。几乎每一个功能的网站上都有测试覆盖率的形式, 硒端对点测试。Shutterstock 有一个开发工作流程的地方通过詹金斯, 将阻止部署到生产, 如果硒测试失败。我喜欢这样;这意味着除非所有的测试都通过了, 否则任何人都不能将任何东西放到生产中。
但不久之后, 我意识到, 我们的公司, 这是每天发布多次, 已经变成了一个公司, 现在被禁止发布多天一次, 主要是因为失败的硒测试。常见的情况是, 测试失败不是因为产品损坏, 而是因为它们很脆弱。
一些事情导致了这一点:
终端端 selenium-based 验收测试成为了每个人都依赖于测试的唯yi形式的自动化测试。许多团队甚至停止编写单元测试。
测试框架是片状的, 是由 QA 团队建立和拥有的。当某件事情失败, 整个软件工厂停止运转时, QA 团队中一小部分三到五人的错误就落在了我们身上, 他们经常被指责为放慢了组织的速度。
工程组织花了很多时间来研究如何构建一个可以扩展的产品, 但是没有足够的注意力去构建一个支持这种产品开发的开发工作流程。
质量完全由 QA 团队拥有。
在我们的, 我们有一个 QA 组织, 它没有与组织的其他部分进行扩展。虽然他们拥有自动化所有内容的技能,中国sonarqube经销商, 但是他们缺乏构建可伸缩的测试框架所需的技能。由于这种差距, 他们无法影响组织的其他人认为质量是所有人拥有的东西, 而不仅仅是 QA 团队。为了弥合这一差距, 我们不得不重新考虑我们对 QA 整体的态度。
迈向新的开始
我想完成两个目标: 首先, 重建 Shutterstock 的测试基础架构/框架,代理商sonarqube经销商, 使其更加稳定, 其次, 改变 Shutterstock 的工程文化, 使之成为一个质量不是由测试工程团队拥有的, 而是由每个人来拥有。
我们改变了招聘测试工程师时所期待的能力。我们希望我们的测试工程师成为强大的开发人员, 他们知道如何构建 object-oriented 的解决方案, 从而帮助他们创建一个稳定且可扩展的测试框架。我们也希望他们成为有影响力的人, 他们可以推动他们的团队做正确的事情, 而不采取跳过单元测试这样的捷径。一旦我们建立了一个 world-class 测试工程团队, 我们就开始了解如何快速发布, 同时保持一个的产品。
我们知道我们da的问题是脆弱的测试, 所以我们建立了一个叫做 "睿智" 的工具来记录每个测试的通过/失败数据。我们所有的测试都把数据推入睿智, 每次他们作为我们的詹金斯工作流程的一部分运行。然后, 我们在这个数据库之上建立了一个网站, 使数据的挖掘变得容易。我们现在能够监控工作的合格率、个别测试的及格率、常见的失败消息、的运行测试, 等等。有了这些数据, 我们就可以保持自己和其他人的责任感。我们的一个团队受影响的失败的测试认识到, 他们通常的传球率只有20%。(试想一下, 由于这一路障, 软件工厂经常停下来。通过使用远见卓识, 他们能够快速隔离测试的di合格率, 并在这些测试中看到常见的失败消息。团队对测试脚本进行了简单的修复, 以提高其可靠性。
使用SonarQube进行PL / SQL分析 - 配置
发表评论
Sonar在这个关于使用SonarQube分析PL / SQL代码的新系列的第yi篇文章中,我们看到了如何组织我的分析环境:
一个文件夹C:﹨ SRC ﹨与我所有的项目,
于每个项目的子目录,
不同的其他子目录,包括一个".. ﹨ Source",其中包含要分析的源代码。
在我们的PL / SQL分析的情况下,这将被放在文件夹"C:﹨ SRC ﹨ Demo ﹨ PLSQL ﹨ Source"中。
让我们看看如何用Jenkins来创建和配置SonarQube这个代码的分析。继续阅读→
Jean-Pierre FAYOLLE于2013年12月27日发布了SonarQube - PL / SQL。
使用SonarQube - 组织进行PL / SQL分析
发表评论
Sonar现在我更新了我的源代码分析环境,随着SonarQube或Sonar和Jenkins的升级,时间已经到来更新了一个应用和演示的存储库。继续阅读→
此条目发布于2013年12月22日由Jean-Pierre FAYOLLE发行的SonarQube - PL / SQL。