试图从代码覆盖率中排除单元测试

时间:2018-08-18 00:15:45

标签: sonarqube nant

我正在尝试从代码覆盖率分析中排除单元测试项目/文件夹,因为这会夸大代码覆盖率。

我有不同的层/项目和单元测试项目。如下所示。

Solution
  DataAccess
  Business
  Service
  Model
  Test.DataAccess
  Test.Business
  Test.Service
  Test.Model

如何排除名称/路径中带有“ Test。*”的任何文件夹/项目?我想排除那些文件夹中的所有内容。

我已经尝试了以下模式(以及许多其他模式):

**\*Test.*\*
*Test.*\*
Test.*\*
**/*Test.*/*
*Test.*/*
Test.*/*

我无法排除单元测试文件。似乎无法识别目录名称中的通配符。

2 个答案:

答案 0 :(得分:1)

我们遇到了类似的问题,我提到了要使用的文件名模式而不是文件夹名。因此,我们拥有以test.cs或tests.cs结尾的单元测试文件名。所以我加了

**/*Tests.cs
**/*Test.cs

它就像一种魅力!

答案 1 :(得分:0)

正如@ G.Ann-SonarSourceTeam和@ Isaiah4110所说,更好的解决方案是让sonarQube一起排除测试项目。我不确定为什么在我们的案例中默认情况下不会发生这种情况,但是我们的解决方案是将“ SonarQubeTestProject”属性添加到* .csproj文件中。

<PropertyGroup>
  <SonarQubeTestProject>true</SonarQubeTestProject>
</PropertyGroup>