将测试夹具添加到 gradle 多项目中的 checkstyle 检查中

问题描述 投票:0回答:1

最近发现了 java-test-fixtures gradle 插件并添加了它,以便在大型多项目存储库中的子项目测试之间共享一些功能,该存储库具有严格的 checkstyle 和 PMD 检查。

问题是测试装置文件夹中的那些类不包含在 checkstyle 或 PMD 检查中,因为默认情况下它们设置为仅查看 src/main 和 src/test 文件夹。

我的主要问题是是否有办法将 testFixtures/ 文件夹包含到 checkstyle 检查中。

我尝试在 gradle 中为 testFixtures 创建自定义源集,但无法将其添加为 checkstyle 任务的源集之一

gradle build.gradle checkstyle pmd java-test-fixtures
1个回答
0
投票

最终凭借纯粹的运气找到了解决方案,所以来这里回答以防万一有人偶然发现这个:

Checkstyle 和 PMD gradle 任务都知道 sourceSet,因此一旦重新加载 gradle,它就会知道 testFixtures 有一个新的 sourceSet,然后生成 checkstyleTestFixtures 和 pmdTestFixtures,它们可以链接到主 checkstyle 和pmd 按以下方式执行任务(对于 PMD,只需将 checkstyle 替换为 pmd):

tasks.register('checkstyle') {
    finalizedBy checkstyleMain //typical chain for checks
    finalizedBy checkstyleTest //typical chain for checks
    
    //this if statement checks if the testFixture directory is present
    //in order to only add the task dependency if the plugin is used
    if (!fileTree('src/testFixtures').empty) 
        finalizedBy checkstyleTestFixtures
}
© www.soinside.com 2019 - 2024. All rights reserved.