<menuitem id="gc5xj"><track id="gc5xj"></track></menuitem>
  • <dl id="gc5xj"><ins id="gc5xj"></ins></dl>
              1. <dl id="gc5xj"></dl>

                <dl id="gc5xj"></dl>

                <li id="gc5xj"><ins id="gc5xj"></ins></li>

                1. <output id="gc5xj"></output><dl id="gc5xj"><ins id="gc5xj"></ins></dl>
                    <dl id="gc5xj"></dl>

                        <dl id="gc5xj"><ins id="gc5xj"></ins></dl>

                        <dl id="gc5xj"></dl>

                          使用Gradle做Java代码质量检查

                          发表于:2019-3-22 17:06  作者:姜家志   ?#19995;矗?#25496;金

                          字体: | 上一篇 | 下一篇 |我要投稿 | 推荐标签: java

                            Maven --> Gradle
                            首先安装gradle:Mac安装
                           brew install gradle
                            Ubuntu安装
                           apt install gradle
                            Maven项目切换Gradle项目,再Maven根目录下运行:
                           gradle init --type pom
                             运行成功之后运行命令gradle build,成功之后删除pom.xml即可。
                            使用jacoco分析单元测试
                            jacoco是一个分析单元测试覆盖率的工具,使用它运行单元测试后,可以给出代码中?#20999;?#37096;分被单元测试到,哪些部分没有被单元测试覆盖,并?#19968;?#20250;给出整个项目的单元测试覆盖情况。
                            在build.gradle中添加jacoco插件
                           apply plugin: 'jacoco'
                            运行命令进行单元测试分析
                           gradle jacocoTestReport
                            或者可以再Gradle的工具菜单中Tasks -> other -> jacocoTsestReport可以直接启动单元测试的分析。
                            在项目中build目录下可以看到jacoco目录,以及reports/test/html目录,后者主要是jacoco生成的报告。
                            使用SonarQube做代码质量检查
                            SonarQube是一个开源的代码质量管理系统,支持超过25?#30452;?#31243;语言,提供重复代码、编码标准、单元测试、单元测试覆盖率,代码复杂度,潜在Bug、注释和软件设计的报告等。
                            在gradle中使用SonarQube首先要添加依赖,在编译脚本中添加:
                             buildscript {
                            repositories {
                            maven { url "https://plugins.gradle.org/m2/" }
                            }
                            dependencies {
                            classpath("org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.6-rc1")
                            classpath("org.springframework.boot:spring-boot-gradle-plugin:2.0.5.RELEASE")
                            }
                            }
                            添加插件:
                           apply plugin: "org.sonarqube"
                            配置SonarQube:
                             sonarqube {
                            properties {
                            property "sonar.sourceEncoding", "UTF-8"
                            property "sonar.host.url", "https://sonarcloud.io"
                            property "sonar.jdbc.url", "jdbc:mysql://my.server.com/sonar"
                            property "sonar.jdbc.driverClassName", "com.mysql.jdbc.Driver"
                            property "sonar.login", "test"
                            property "sonar.password", "test"
                            }
                            }
                            或者只使用token上传分析结果即可:
                           property "sonar.login", "token"
                            SonarQube本身并没有提供单元测试覆盖率的工具,需要在使用jacoco的分析结果,在SonarQube中添加jacoco相关的配置
                             sonarqube {
                            properties {
                            property "sonar.jacoco.reportPath", "$rootDir/build/jacoco/test.exec"
                            property "sonar.jacoco.itReportPath", "$rootDir/build/jacoco/acceptanceTest.exec"
                            property "sonar.jacoco.excludes", "*/st/*"
                            property "sonar.sourceEncoding", "UTF-8"
                            property "sonar.host.url", "https://sonarcloud.io"
                            property "sonar.jdbc.url", "jdbc:mysql://my.server.com/sonar"
                            property "sonar.jdbc.driverClassName", "com.mysql.jdbc.Driver"
                            property "sonar.login", "test"
                            property "sonar.password", "test"
                            }
                            }
                            运行命令gradle sonarqube即可对代码进行分析,并上传分析结果,因为SonarQube的分析依赖jacoco的单元测试分析,所以需要先运行命令gradle jacocoTestReport。最?#25307;?#35201;运行的组合命令是:
                             gradle jacocoTestReport
                            gradle sonarqube
                            
                               上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。

                          【调查报告】你以为的测试行业现状,其实是这样的!

                          评 论

                          论坛新帖

                          顶部 底部


                          建议使用IE 6.0以上浏览器,800×600以上分辨率,法律顾问:上海瀛东律师事务所 张楠律师
                          版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2019, 沪ICP备05003035号
                          投诉及意见反馈:[email protected]; 业务联系:[email protected] 021-64471599-8017

                          沪公网安备 31010102002173号

                          51Testing官方微信

                          51Testing官方微博

                          扫一扫 测试知识全知道

                          <menuitem id="gc5xj"><track id="gc5xj"></track></menuitem>
                        1. <dl id="gc5xj"><ins id="gc5xj"></ins></dl>
                                    1. <dl id="gc5xj"></dl>

                                      <dl id="gc5xj"></dl>

                                      <li id="gc5xj"><ins id="gc5xj"></ins></li>

                                      1. <output id="gc5xj"></output><dl id="gc5xj"><ins id="gc5xj"></ins></dl>
                                          <dl id="gc5xj"></dl>

                                              <dl id="gc5xj"><ins id="gc5xj"></ins></dl>

                                              <dl id="gc5xj"></dl>

                                                黑龙江快乐10分软件
                                                <menuitem id="gc5xj"><track id="gc5xj"></track></menuitem>
                                              1. <dl id="gc5xj"><ins id="gc5xj"></ins></dl>
                                                          1. <dl id="gc5xj"></dl>

                                                            <dl id="gc5xj"></dl>

                                                            <li id="gc5xj"><ins id="gc5xj"></ins></li>

                                                            1. <output id="gc5xj"></output><dl id="gc5xj"><ins id="gc5xj"></ins></dl>
                                                                <dl id="gc5xj"></dl>

                                                                    <dl id="gc5xj"><ins id="gc5xj"></ins></dl>

                                                                    <dl id="gc5xj"></dl>

                                                                      <menuitem id="gc5xj"><track id="gc5xj"></track></menuitem>
                                                                    1. <dl id="gc5xj"><ins id="gc5xj"></ins></dl>
                                                                                1. <dl id="gc5xj"></dl>

                                                                                  <dl id="gc5xj"></dl>

                                                                                  <li id="gc5xj"><ins id="gc5xj"></ins></li>

                                                                                  1. <output id="gc5xj"></output><dl id="gc5xj"><ins id="gc5xj"></ins></dl>
                                                                                      <dl id="gc5xj"></dl>

                                                                                          <dl id="gc5xj"><ins id="gc5xj"></ins></dl>

                                                                                          <dl id="gc5xj"></dl>

                                                                                            广东时时彩现场直播 福彩开奖3d pc28平挂不亏模式 篮彩让分胜负加时算吗 欢乐斗地主发消息暗号 香港赛马会六肖公式 大乐透走势图带连线图带坐标准 云南十一选五开奘结果23号 秒速飞艇是国家开的吗 安全生产监督的重要性包括 上海福彩15选5走势图 最新福彩3d代码定位法 上海快3玩法说明 上海快三开奖走势一定牛 成都竞彩店分布图