是否可以对所有口味进行一次声纳分析?我有一个多风格的 Android 项目,我在不同风格的文件夹中有一些文件的不同实现。这些文件在风味测试文件夹中有相应的测试。因此,在示例中,我的 src 结构是:
/main/java/../ConfigurationService.kt
/flavor1/java/../ConfigurationService.kt
/flavor2/java/../ConfigurationService.kt
/test/java/../ConfigurationServiceTests.kt
/testFlavor1/java/../ConfigurationServiceTests.kt
/testFlavor2/java/../ConfigurationServiceTests.kt
现在我可以使用sonarqube.androidVariant
了,但这一次只能配置一个变体,所以如果我想检查第二种风格的分析,我需要使用不同的设置再次运行任务,这在 Gitlab CI 中无法显示多个分析。在运行声纳之前,我能够配置单独的 jacoco 任务以生成所有风格的覆盖率报告。然后我尝试将源目录添加到 sonarplugin,如下所示:
sonarqube {
properties {
//standard plugin configuration
android.libraryVariants.each { variant ->
if (variant.buildType.name != "debug") return //we run sonar only on debug
def variantName = variant.name
def flavorName = variant.flavorName
properties["sonar.sources"] += "./src/${flavorName}/"
properties["sonar.tests"] += "./src/test${flavorName.capitalize()}"
// and so on for binaries, jacoco report paths etc.
}
}
}
不幸的是,这最终会出现错误:
ConfigurationService.kt can't be indexed twice. Please check that inclusion/exclusion patterns produce disjoint sets for main and test files
有没有办法在一次声纳分析中覆盖所有类型的测试覆盖?正如我之前写的那样,我无法对每种风格进行单独分析,因为 Gitlab CI 无法在合并请求中显示多个声纳结果。