gradle项目的惯用结构用于测试

时间:2015-01-13 14:45:41

标签: java gradle organization

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

限制

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

我的想法

    每个测试子项目的
  • 符号链接src/main到某个公共目录(src/test是"个人")。这将极大地支持IDE,但它会导致复制所有依赖项和首选项。另外,我非常不确定,如果这是Gradle中的首选方式。
  • 创建一个公共项目,每个子项目都是imported,这样可以保存依赖项(是吗?),但我不确定IDEA是否能正确处理这种方式。

使用Gradle执行此操作的惯用方法是什么?

1 个答案:

答案 0 :(得分:1)

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

来完成的

共享代码和共享库:您可以创建类似https://github.com/gradle/gradle/blob/master/gradle/dependencies.gradle的地图,并在不同的子项目中使用它。顺便说一句:Gradle代码库有很多集成测试,你可以检查它们的构建是如何配置的,看看你是否想要应用一些想法。