【问题标题】:SONAR undocumented public API skewed by unit testsSONAR 未记录的公共 API 被单元测试歪曲
【发布时间】:2013-04-18 19:31:06
【问题描述】:

SONAR 指标包括用于评估文档质量的部分,有一个项目 Public undocumented API。这在我们的项目中非常高,因为它会报告每个单元测试。但是,对于 Junit,单元测试方法必须是公开的。

是否有一种简单的方法可以从未记录的 API 指标中删除单元测试方法

我知道这些替代方案:

  • 我们可以将 JavaDoc cmets 添加到每个测试方法中。这没有用,因为它只会污染代码。
  • 测试位于 Eclipse 测试片段项目中。我们可以从 SONAR 分析中完全排除测试类。但是,我们通常希望将相同的规则应用于测试代码和生产代码(例如检查违规时)。

我没有在 SONAR 配置中找到与该指标匹配的部分,但我可能错过了。

【问题讨论】:

  • 我们有同样的问题。我们已经使用了模式 !*Test 但不幸的是这并没有帮助。我们明确包含我们的测试文件,因为我们有验证测试类质量的规则。例如缺少断言的测试方法。所以我不想把测试类作为一个整体排除在外。您找到解决方案了吗?

标签: unit-testing sonarqube static-code-analysis


【解决方案1】:

这个指标没有提供单元测试类,你一定是在你的配置中遗漏了一些东西。

例如,查看Sonar analysed by Sonar (on Nemo):您会看到“public_undocumented_api”没有报告任何测试类。

【讨论】:

  • 这可能是我们没有使用Maven标准目录布局造成的吗?我们的测试类不是 src/test/java,而是在“src”中(在单独的 Eclipse 测试插件项目中)。这基本上是标准的 Eclipse 源目录布局(对于非 Maven 项目)。
  • 是的,当然!您可以查看 Sonar Eclipse 代码库,了解我们如何配置所有内容以便 Sonar 对其进行正确分析:github.com/SonarSource/sonar-eclipse
猜你喜欢
  • 2011-03-12
  • 2012-07-25
  • 2017-10-27
  • 1970-01-01
  • 2015-12-17
  • 1970-01-01
  • 2016-06-22
  • 2012-12-06
  • 1970-01-01
相关资源
最近更新 更多