多模块项目中的Gradle测试库

五月黎明

我想创建一个库,我的项目中的其他模块可以依赖该库,但仅用于测试。我已经广泛阅读了Gradle文档,却找不到如何做。这是我的项目结构:

gradle-example:
  app:
    src/main/kotlin ...
    src/test/kotlin <- this is supposed to use 'com.example.SomeTestUtil'
  testlib:
    src/test/kotlin/com.example.SomeTestUtil

settings.gradle.kts:

rootProject.name = "gradle-example"
include("app")
include("testlib")

在应用模块中,我尝试添加

dependencies {
  testImplementation(project(:testlib"))
}

但是我尝试SomeTestUtilapp模块测试类中导入时遇到编译错误

在允许在测试代码中使用测试源的同一项目中,声明对模块的依赖关系的正确方法是什么?

为了澄清,我们想创建一个库,该库只能src/test下的其他模块使用src/main

五月黎明

显然,这可以通过使用https://docs.gradle.org/current/userguide/java_testing.html#sec:java_test_fixtures来完成

  • 他们可以看到主要的源集类

  • 测试源可以看到测试夹具类

因此,对问题示例的更改是:

  1. 更改src/testsrc/testFixtures
  2. 将依赖项声明为 testImplementation(testFixtures(project(":testlib")))
  3. 添加java-test-fixtures插件到build.gradle.ktstestlib模块

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

多模块项目中的Maven测试资源

在Maven多模块项目中运行测试

如何在多模块项目中访问 gradle 中的测试 jar

多模块项目中测试类的正确位置是什么?

多模块Spring Boot项目中的单元测试

多模块Maven项目中的共享集成测试

多模块项目中的Maven测试生命周期

多模块Spring Boot项目中的Gradle依赖插件

如何避免在多模块Gradle项目中重复依赖版本?

Gradle API与在多模块项目中实现的最佳实践

在gradle中的多模块项目中发布的问题

Jar文件未在Gradle多模块项目中复制

多模块Maven项目中的Nest Git存储库

多模块项目中的房间数据库

多模块项目中的 requiresDependencyResolution

多模块Gradle项目-执行所有单元测试

在多模块Maven项目中构建所有模块之后,如何运行集成测试?

如何在多模块 gradle 项目中仅编译已更改(或相关)的模块

如何在多模块项目中使用 JUnit5 和 SpringBoot2 通过 gradle 而不是 intelliJ 运行测试

Gradle 多模块测试下降

Gradle多模块项目设置

在多模块 gradle 项目中,我应该使用一个全局 gradle 文件还是每个模块都有自己的?

在多模块项目中使用自定义React Hook进行Jest测试时出错

在多模块Maven项目中使用相同的log4j.properties进行测试

在多模块Maven项目中应将共享测试实用程序放在哪里?

如何在用Java编写的多模块播放项目中运行单元测试

如何在父文件夹的多模块Gradle项目中声明公共依赖项

Gradle多模块项目中的sonarqube 6.2中错误的覆盖范围计算

运行时如何在多模块 gradle 项目中设置类路径?