Java gradle测试项目的惯用结构

Java gradle测试项目的惯用结构,java,gradle,organization,Java,Gradle,Organization,任务:我拥有的是一个大型非梯度(make:-)项目,它包含许多子项目,每个子项目都在它自己的子目录中。我必须为其中一些子项目编写功能测试。这些子项目产生独立的结果,但具有相同的结构,因此有许多用于测试这些子项目的通用代码,因此我想在一些特殊位置共享这些代码 限制: 根据开发人员的要求,子项目的测试应该在该子项目的目录中(准确地说,在子目录中,例如,func_tests) 对于我的测试项目,我有一些共享的依赖项,我通常使用这些依赖项,例如,Google Guava、TestNG等等,还有一些测试

任务:我拥有的是一个大型非梯度(make:-)项目,它包含许多子项目,每个子项目都在它自己的子目录中。我必须为其中一些子项目编写功能测试。这些子项目产生独立的结果,但具有相同的结构,因此有许多用于测试这些子项目的通用代码,因此我想在一些特殊位置共享这些代码

限制

  • 根据开发人员的要求,子项目的测试应该在该子项目的目录中(准确地说,在子目录中,例如,
    func_tests
  • 对于我的测试项目,我有一些共享的依赖项,我通常使用这些依赖项,例如,Google Guava、TestNG等等,还有一些测试运行的设置(
    excludeGroups'slow'
    …),我更喜欢这些设置是通用的,但这并不重要
  • 符号链接是可以接受的方式,如果这是一个好的设计:)
  • 如果可能的话,我想让IntelliJ IDEA正确处理这种依赖关系
我的想法

  • 将每个测试子项目的
    src/main
    符号链接到某个公共目录(
    src/test
    为“单个”)。这将极大地支持IDE,但会导致复制所有依赖项和首选项。另外,我也很不确定,这是否是格拉德尔的首选方式
  • 创建公共项目,这将由每个子项目完成,这将保存依赖项(会吗?),但我不确定IDEA是否会以这种方式正确处理

Gradle的惯用方法是什么?

查看Gradle安装中的
samples/java/withIntegrationTests
。这将使您了解如何添加测试(还有其他方法)。您需要调整该设置,以确保IDEA能够处理您的测试。这是通过自定义
idea.module.scopes
完成的

共享代码和共享库:您可以创建一个类似映射的库,并在不同的子项目中使用它。顺便说一句:Gradle codebase有很多集成测试,你可以检查他们的构建是如何配置的,看看你是否想应用一些想法