我使用gradle
在一个具有不同模块的大项目中运行我的JUnit
测试,其中测试缓存非常有价值,因为我不想为每个代码更改运行每个测试。然而,我有几个测试,读取其他模块文件,如配置文件,这可能会导致测试失败,如果他们被改变,然而,因为没有一个硬gradle依赖于测试和这些文件之间的测试运行是缓存的,因此它可能导致一个成功的运行,而在现实中,配置文件的代码更改可能会破坏测试。
我知道我可以通过使用cleanTest
跳过gradle测试缓存,但我不想为我所做的每个构建丢失缓存功能。所以我想告诉它,他们依赖于其他模块文件,如果他们不改变测试运行必须被缓存。对如何实现这一点有什么建议吗?
您应该指定依赖项来实现它。
假设项目结构是这样的:
.
|__ module-a/
| |__ src/main/resources/aa/bb/config.json
| ___ build.gradle
|
|__ module-b/
| |__ src/test/java/com/example/DemoTest.java
| ___ build.gradle
|
___ settings.gradle
添加依赖到module-b/build.gradle
:
...
dependencies {
testImplementation(project(':module-a'))
}
配置可以加载到DemoTest
:
...
class DemoTest {
@Test
void qq() {
InputStream inputStream = this.getClass().getResoureAsStream("/aa/bb/config.json");
...
}
}
那么对module-a
内部配置的任何更改都将导致module-b
内部的测试重新运行。