在sonarqube

时间:2018-06-07 07:52:53

标签: sonarqube automated-tests

我想设置覆盖范围扩展,以便我的测试代码在项目概述中不会被报告为未经测试。

我正在使用SonarQube 7.0版(内部版本36138)和Visual Studio 2015项目。结果是在jenkins上运行的跑步者报告的。

我使用在SonarQube服务器上设置通用代码覆盖规则。 Administration - > Configuration - > General Settings - > Analysis Scope - > Code Coverage - > Code Exclusions我将规则设置为**/_Test*/**/*.*

工具提示读取这将是sonar.coverage.exclusions根据Narrowing The Focus使用的密钥**

我的期望是我使用的模式匹配。 _Test*个或多个目录,然后是以**开头的目录,后跟*.*零个或多个目录,最后匹配所有文件MySolution/_TestQ1/Component/MyComponentTest.cs

然而,即使我重新运行该项目,也不会应用此规则。

文件

<IfModule mod_headers.c>
    <If "%{QUERY_STRING} =~ /page=edit_page/ && %{REQUEST_METHOD} =~ /POST/">
         Header set X-XSS-Protection "0"
    </If>
</IfModule>

仍然会进入报告。

有没有办法快速测试我的规则? 我的统治是否存在根本性的问题? 如何排除测试?

1 个答案:

答案 0 :(得分:1)

我使用的是6.7版本,但我相信这也适用于7.0版本。

基本上,如果你去管理&gt;配置&gt;一般设置&gt;用于MSBuild的扫描仪,您将看到测试项目模式,如:

[^\\]*test[^\\]*$

有信息:

  

DEPRECATED - 在扫描仪中使用'sonar.msbuild.testProjectPattern'键   对于MSBuild(客户端)而不是。正则表达式与测试匹配   项目文件路径(.NET语法)

     

键:   sonar.cs.msbuild.testProjectPattern

这些是您应该添加/修改测试项目模式的地方。