0

我正在开发一个 SonarQube 插件,并希望添加一些针对正在运行的服务器进行集成测试的测试。

我正在 docker 容器中启动服务器,然后想在 JUnit 测试中对它们执行声纳分析。

这看起来可以使用org.sonarsource.scanner.api.EmbeddedScanner,但可能有更好的方法。

使用 EmbeddedScanner 的一个缺点是我只能分析磁盘上的静态文件。

有更好的方法吗?

4

1 回答 1

1

您可以(应该)通过将 String 传递给分析器来对分析器进行单元测试。但是一旦您谈论集成测试,那么您确实必须使用物理文件。

您可以看看我们如何为扫描仪部分编写“中等测试”: https ://github.com/SonarSource/sonarqube/tree/5.5/sonar-scanner-engine/src/test/java/org/sonar/批次/中试

请注意,此 BatchMediumTester 实用程序类不是 API,并且不保证在将来的版本中向后兼容。因此,您不能编写“中等测试”并针对不同版本的 SonarQube 运行它们。

为了运行集成测试,我们使用 SonarQube Scanner “像真实用户一样”运行 SonarQube 分析。我们有一个名为 Orchestrator 的工具,它能够启动给定版本的 SonarQube 服务器、安装插件、填充质量配置文件,然后运行分析。参见例如: https ://github.com/SonarSource/sonar-scm-svn/blob/master/its/src/test/java/com/sonarsource/it/scm/SvnTest.java

于 2016-05-09T09:42:35.990 回答