在代码分析中包含单元测试

时间:2017-05-18 11:19:43

标签: phpunit sonarqube

我们在版本6.3.1中使用SonarQube,并对功能非常满意。

但是我们希望将测试代码包含在分析中。更具体地将它们包括在内进行分析,但将它们排除在复制和代码覆盖范围之外。

我们当前的配置如下所示:

sonar.sources=src/src
sonar.tests=src/tests, src/jsTests

sonar.test.inclusions=src/jsTests/**, src/tests/**

据我们所见,声纳自动从分析中排除我们的测试:

10:20:37.223 INFO  - Excluded sources:
10:20:37.223 INFO  -   **/Externals/**
10:20:37.223 INFO  -   src/jsTests/**
10:20:37.223 INFO  -   src/tests/**
10:20:37.223 INFO  - Included tests:
10:20:37.223 INFO  -   src/jsTests/**
10:20:37.223 INFO  -   src/tests/**

这是我们想要改变的。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

更改配置,以便将测试视为源文件。尝试类似:

sonar.sources=src/src, src/tests, src/jsTests
sonar.tests=
sonar.test.inclusions=
sonar.coverage.exclusions=src/tests/**, src/jsTests/**
sonar.cpd.exclusions=src/tests/**, src/jsTests/**

答案 1 :(得分:0)

SonarJava分析器包含特定于测试的规则,例如S2699"测试应包括断言"分析他们的健康作为测试。如果包含在您的配置文件中,这些规则将自动针对测试文件运行。 "正常"规则不会针对测试文件运行。

要分析测试文件中代码本身的质量,您需要设置一个单独的分析,将 var resultArray = arrFirst.concat(arrSecond); 设置为您的测试位置。然后,您可以像Pierre-Yves所建议的那样设置覆盖率和重复排除项,而不是通过UI而不是分析属性。

相关问题