【发布时间】:2023-03-19 12:49:01
【问题描述】:
我的应用程序结构的上下文:
- root 上没有任何内容,只有 settings.gradle 和 build.gradle 具有最小的依赖性。
- 有很多模块/子项目,其中一个名为 xyzintegrationtest(xyz 是假的示例名称)
- 集成测试模块 xyzintegrationtest 有 src/main、src/test 和 src/integrationtest
- src/main 和 src/test 为空。 src/intgerationtest 有使用 junit 的集成测试。
- 项目 xyzintegrationtest 依赖于所有项目(隐式)
- integrationtest build.gradle 文件有以下任务:
任务集成测试(类型:测试){
......
}
现在,当我在根项目上进行 gradle build(或 gradlew build)时,我希望所有项目都能编译,并且所有单元测试都在每个子项目的 src/test 下运行。但它也在调用这个 integrationTest 任务,并使集成测试也运行。更令人惊讶的是,它偶尔发生,并非始终如一。我什至尝试过 gradle build -x integrationTest,但它仍然可以运行。
所以问题是:
- gradle build 是否运行所有类型为 test 的任务?那我怎么能有只在我显式调用它时才运行的任务。
- 如果第一个不应该发生,是 gradle 中的错误吗?
- 我做错了吗?结构非常扁平,所有模块/子项目在同一级别,任务名称非常清晰,type:test。
谢谢。
【问题讨论】:
标签: gradle integration-testing