sonarqube开源代码质量管理软件-苏州华克斯信息
SonarQube和JaCoCo的个人测试代码覆盖率本文介绍了如何使SonarQube收集单个测试的测试代码覆盖率指标。代码覆盖工具通常产生一个报告,显示在给定测试会话期间执行的所有测试的组合效果的代码覆盖率(按行,分支等)。例如,当您在持续集成中运行单元测试时就是这种情况。在SonarQube和JaCoCo的帮助下,可以在单个测试用例级别(JUnit或TestNG中的测试方法)中收集覆盖度量。为了实现这一点,我们在这篇文章中显示了一些特殊的配置。环境以下过程已经使用SonarQube4.1.2和4.3.2版本进行了验证,但它也适用于SonarQube3.7.x(xin的LTS版本)。我们用于验证设置的应用程序代码是熟悉的SpringPetClinic应用程序,增强功能可支持Tomcat7和Spring3(请参阅此篇文章,以了解有关宠物诊suo需要更新的信息:https://deors.wordpress.com/2012/09/06/petclinic-tomcat-7/)该代码可以从存储库中的GitHub:https://github.com/deors/deors.demos.petclinic说明一旦你知道如何连接所有的点,这些说明很简单。所有这些都是为MavenSurefire插件添加一些特定的配置(Surefire是插件,它是单元测试执行的任务,它支持JUnit和TestNG)。由于此具体配置不应影响常规单元测试执行,因此建议将所需配置包含在单独的配置文件中,仅在执行SonarQube分析时执行。我们一起来描述pom.xml文件中所需的更改。AnsibleSonarQube升级的角色你可能知道,sonarqube开源代码质量管理软件,并希望使用SonarQube。这是一个伟大的工具,是积极的发展和改善。这是伟大的,如果你是一个开发使用SonarQube。但是,如果您碰巧管理SonarQube实例,则由于升级指南由11步骤组成,因此不断升级非常麻烦。停止旧的SonarQube服务器并解压新的SonarQube分布在一个新鲜的目录,让我们说NEW_SONARQUBE_HOME使用默认的H2数据库启动它,并使用更新中心安装您需要的插件手动安装任何自定义插件停止新服务器更新声纳的内容.属性和包装.配置文件位于NEW_SONARQUBE_HOME/配置目录中,其内容与OLD_SONARQUBE_HOME/配置目录中的相关文件(web服务器URL、数据库设置等)有关。不-粘贴旧文件如果使用了自定义JDBC驱动程序,请将其到NEW_SONARQUBE_HOME/扩展/jdbc驱动程序/备份数据库删除数据/es目录启动新的web服务器http://localhost:9000/setup(用您自己的URL替换localhost:9000)来浏览并按照安装说明进行操作这是一个太多的步骤,手动执行。因此,我决定通过为它编写一个Ansible的角色来实现自动化。初始设置在我开始编写Ansible剧本之前,代理商sonarqube开源代码质量管理软件,我需要找到一种方法来测试我的代码。所以我开始与流浪汉旋转了一个虚拟机,并提供了一个简单的脚本。这是需要有类似的环境,以我们的实际SonarQube生产实例。我能够增量地构建我的Ansible剧本并在这个VM上测试它。很快我就明白了,与流浪汉一起工作会减慢我的速度,因为我需要重置环境,而不是的预期。所以我决定考虑泊坞窗。用于测试的泊坞窗我找到了正式的SonarQube泊坞窗图像,但无法使用,因为我们的SonarQube实例安装在CentOS和官fang图像使用不同的基础图像。另外,我需要自定义特定的SonarQube版本我想开始。因此,我创建了我们自己的Dockerfile与CentOS6基地和Ansible安装。此泊坞窗映像不需要启动SonarQube,因为我只是想验证是否进行了正确的文件更改,而我的Ansible手册没有错误。升级的第yi步之一就是关闭服务器。我将我的剧本装入容器,并在该容器内运行Ansible,对该本地环境进行了更改。当前脚本的路径TESTS_DIR=$(cd$(dirname${BASH_SOURCE[0]})&&密码#命令测试剧本TEST_COMMAND=cd/行动&&ansible-剧本$@-我本地主机-c升级-声纳database.yml#运行容器安装行动为卷泊坞run-v$TESTS_DIR/.。/行动/:/行动声纳-升级-测试/垃圾/bash-c${TEST_COMMAND}在泊坞窗中运行我的剧本大大减少了反馈回路,所以我决定泊坞窗是走的路。你可以看看我所有的脚本在GitHubAnsible角色我一步一步地往前走,我到达了一个点,一切似乎都在工作,我有一个非常有用的Ansible的角色在我的手中。它尚未发布到AnsibleGalaxy,但您可以在GitHub的SonarQube升级Ansible角色项目下找到源文件和文档。当前Ansible角色通过在当前位置旁边创建新安装来升级SonarQube。这提供了回滚的方法(如果需要)。此时,角色执行以下任务:确保特定的根用户存在于声纳安装在所有安装所在的目录中创建声纳.sh确保SonarQube服务存在停止SonarQube新版本备份数据库和安装插件将自定义配置应用于新实例确保删除数据/es重新SonarQube服务启动新版本开始SonarQube手动步骤这个过程仍然需要几个手动步骤。在运行升级手册之前,应手动确保在升级过程中要安装的插件列表是xin的。您可以从SonarQube的管理视图中获得xin支持的版本号。根据SonarQube的建议,此Ansible角色不仅以前安装的配置,而且使用带有变量的模板来为新实例创建配置。这意味着在执行升级之前,开发人员可以将模板和基本配置与新的SonarQube进行比较。虽然这是一个手动步骤,但与以前的操作相比,它更容易,因为可以使用IDE而不仅仅是从命令行中的diff工具进行比较。这两个步骤都需要后续的手动升级,我认为这些升级准备活动。SonarQube和JaCoCo的个人测试代码覆盖率构建部分这里不需要修改但是,您应该注意MavenSurefire的任何自定义配置,以确保它也适用于我们要创建的配置文件。在春季宠物诊suo的情况下,这是我们正在写的参考POM的相关部分:...org.apache.maven.plugins行家-万无一失-插件2.13-XX:-UseSplitVerifier**/*Test.java**/*Tests.java**/它/*IT.java...这种配置告诉Surefire:1)排除执行单元测试的集成测试(Surefire的双插件,Failsafe涵盖了集成测试);和2)禁用字节码验证器,防止类被调试时的运行时错误(即添加mocks或TopLink增强功能时)。依赖部分在本节中,不需要进行任何更改。我们只想注意到,如果您的项目已经在利用JaCoCo收集整合测试覆盖率指标,并且明确地指出了本部分中的JaCoCo伪像,中国sonarqube开源代码质量管理软件,那么可以将其留下-至今没有确定任何冲突。无论如何,代理商sonarqube开源代码质量管理软件,它不应该在这里需要,所以从这个部分删除它可能更安全。档案部分所有必需的更改都在本节中。而且它们都非常干净,因为它们都只需要向POM添加一个新的配置文件。此配置文件将为Surefire配置一个特殊侦听器,以确保适当收集每个单独测试用例的覆盖度量。为了保证成功的测试执行,我们将在此保持与POM的构建部分中显示的相同配置。,配置文件将为包含侦听器代码的伪zao添加新的依赖关系。结果是这样的:覆盖每次测试org.apache.maven.plugins行家-万无一失-插件2.13由JaCoCoprepare-agent->配置的${argLine}-XX:-UseSplitVerifier**/*Test.java**/*Tests.java**/它/*IT.java听者org.sonar.java.jacoco.JUnitListenerorg.codehaus.sonar-plugins.java声纳-jacoco-听众2.3测试sonarqube开源代码质量管理软件-苏州华克斯信息由苏州华克斯信息科技有限公司提供。苏州华克斯信息科技有限公司坚持“以人为本”的企业理念,拥有一支高素质的员工队伍,力求提供更好的产品和服务回馈社会,并欢迎广大新老客户光临惠顾,真诚合作、共创美好未来。华克斯——您可信赖的朋友,公司地址:苏州工业园区新平街388号,联系人:华克斯。)
苏州华克斯信息科技有限公司
姓名: 华克斯 先生
手机: 13862561363
业务 QQ: 3521016152
公司地址: 苏州工业园区新平街388号
电话: 0512-62382981
传真: 0512-62382981