Tag: sonarqube

确保对新Subversion提交的覆盖率最小

我们有一个大型项目,几乎没有任何unit testing。 我想从现在开始确保开发人员提交新function(或错误!),而没有相应unit testing的最小覆盖范围。 有哪些方法可以强制执行此操作? 我们使用很多工具,所以也许我可以使用插件(jira,greenhopper,fisheye,sonar,hudson)。 我也在考虑一个Subversion预提交钩子,jira的Commit Acceptance插件,或类似的东西。 思考?

我怎样让Sonarcloud在Travis,Maven和github的分叉请求下运行

在调查我最近的问题时, Sonarcloud与Travis,Maven和github失败了,我意识到我问的是错误的问题。 我试图解决一个症状而不是潜在的问题。 我工作的项目( eclipse /扫描 )使用Github作为存储库,使用Travis和Sonarcloud进行持续集成和代码分析。 虽然Sonarcloud分析在内部拉取请求(从分支直接推送到eclipse /扫描的拉取请求)上运行良好,但当Travis运行外部拉取请求(来自分叉回购)时,它不起作用。 根本问题在于,我们目前运行sonarcloud的方式依赖于环境变量,这些变量由于安全原因而未填充外部拉取请求: Encrypted environment variables have been removed for security reasons. See https://docs.travis-ci.com/user/pull-requests/#Pull-Requests-and-Security-Restrictions 我们的存储库设置不关心Sonarcloud是否运行,但这意味着我们经常合并破坏sonarcloud规则的更改,因为我们没有意识到它们已被破坏。 我们只看到那些规则在下次被直接推送到存储库的人更改时被破坏了。 这将修复Sonarcloud发现的问题从协作者转移到提交者的负担。 所以, 有没有办法在不引入安全问题的情况下启用Sonarcloud分析来自分叉存储库的拉取请求? 请注意,这个问题似乎是在Travis公共存储库之外的一步, 如何添加一个对Pull请求起作用的Secure变量,它还没有答案。

如何使Sonar忽略codeCoverage指标的一些类?

我在Maven有一个声纳配置文件。 除代码覆盖率指标外,一切正常。 我想让Sonar只为代码覆盖率指标忽略一些类。 我有以下个人资料: sonar **/beans/jaxb/** org.apache.maven.plugins maven-surefire-plugin ${maven.surefire.plugin.version} true **/*Suite*.java **/*RemoteTest.java **/*SpringTest.java **/*CamelTest.java **/*FunctionalTest.java **/*IntegrationTest.java **/*DaoBeanTest.java 请帮忙。 我试着添加类似的东西 com/qwerty/dw/publisher/Main.class 但它没有帮助 UPDATE 我有一个正确的Cobertura配置文件。 我试图将它添加到Sonar配置文件中,但我仍然有53%而不是Cobertura配置文件中的95% sonar **/beans/jaxb/** cobertura org.apache.maven.plugins maven-surefire-plugin ${maven.surefire.plugin.version} true **/*Suite*.java **/*RemoteTest.java **/*SpringTest.java **/*CamelTest.java **/*FunctionalTest.java **/*IntegrationTest.java **/*DaoBeanTest.java org.codehaus.mojo cobertura-maven-plugin ${cobertura.maven.plugin.version} com/qwerty/dw/dao/* com/qwerty/dw/domain/* com/qwerty/dw/beans/**/* com/qwerty/dw/daemon/exception/* com/qwerty/dw/daemon/Main.class com/qwerty/dw/sink/Main.class com/qwerty/dw/publisher/Main.class com/qwerty/dw/publisher/dao/* com/qwerty/dw/publisher/domain/* html true true 60 60 […]

为多个java项目设置sonar-runner

我正在尝试运行sonar-runner来一次分析多个Java项目。 根据文档 ,只需为每个项目创建一个sonar-project.properties文件。 但我不清楚我在哪里放置这些sonar-project.properties文件。 我试图在$SONAR_RUNNER_HOME/conf文件夹中添加多个.properties文件,但是跑步者似乎没有拿起它们。 它只能看到sonar-project.properties文件。 关于如何为多个项目运行声纳转轮的任何建议?

IntStream何时实际关闭? SonarQube S2095对IntStream是误报吗?

我使用Java 8流代替许多旧样式for循环来迭代一堆结果并生成摘要统计信息。 例如: int messages = IntStream.rangeClosed(0, 7).map(ids::get).reduce(Integer::sum).getAsInt(); 注意:我知道还有其他方法可以进行上面显示的计数。 我这样做是为了说明我的问题。 我正在使用SonarQube 5.3和Java 3.9插件。 在该配置中,上面的代码行违反了squid规则S2095:“资源应该关闭”。 这是我期望看到AutoCloseable(例如,FileInputStream)被打开但从未关闭的结果。 所以这是我的问题:终端操作是否会reduce关闭流? 应该是? 或者这是鱿鱼规则的假阳性?