【问题标题】:Programatically launching SonarQube runner for integration testing plugins以编程方式启动 SonarQube 运行器以进行集成测试插件
【发布时间】:2016-09-01 10:36:16
【问题描述】:

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

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

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

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

有更好的方法吗?

【问题讨论】:

    标签: java sonarqube sonarqube5.1 sonarqube-web


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2020-07-29
      • 1970-01-01
      • 2016-05-02
      • 2019-03-11
      • 1970-01-01
      • 2018-12-24
      • 2012-12-31
      • 2021-08-08
      • 1970-01-01
      相关资源
      最近更新 更多