gradle - 测试运行时类路径不包含插件元数据文件“plugin-under-test-metadata.properties”
问题描述
我正在将 gradle 版本升级到 6.8.1。出于测试目的。我在 build.gradle 中添加了依赖testCompile gradleTestKit( ) 但我的集成测试用例失败并出现以下错误。我尝试升级到 Junit 5、spock 2.0-groovy-2.5 和 groovy 2.5.12。
代码:
def runner = GradleRunner.create()
.withProjectDir(this.testDir)
.withPluginClasspath()
withPluginClasspath()方法获取异常。
测试用例:
def "Make sure a build runs successfully"() {
when:
def result = build 'compileJava'
错误:
Test runtime classpath does not contain plugin metadata file 'plugin-under-test-metadata.properties'
org.gradle.testkit.runner.InvalidPluginMetadataException: Test runtime classpath does not contain plugin metadata file 'plugin-under-test-metadata.properties'
at org.gradle.testkit.runner.internal.PluginUnderTestMetadataReading.readImplementationClasspath(PluginUnderTestMetadataReading.java:44)
at org.gradle.testkit.runner.internal.PluginUnderTestMetadataReading.readImplementationClasspath(PluginUnderTestMetadataReading.java:37)
at org.gradle.testkit.runner.internal.DefaultGradleRunner.withPluginClasspath(DefaultGradleRunner.java:162)
解决方案
我通过更改 build.gradle 中的集成测试设置解决了这个问题:
integTest {
// old code had "configurations.testRuntime" at the end
compileClasspath += sourceSets.main.output + configurations.testRuntimeClasspath
}
推荐阅读
- python - 从终端 Pycharm 运行我的文件
- apache-kafka - 如何在 Kafka REST 代理中配置生产者和消费者?
- codenameone - cn1lib 工作所需的最低 Java 版本
- java - 使用泛型类从其他类访问其他方法
- qt - 为什么它在函数中使用 d->eventFilters.prepend(obj) 而不是 append(obj) (QObject::installEventFilter)
- excel - Excel - 有条件地从多个 csv 文件中提取数据
- python - 使用接收错误的神经实验室构建矢量量化器
- javascript - 将动态值与对象中的 object.keys 匹配
- r - 如何将 data.frame 转换为多边形列表?
- html - 在 index.html 前面添加一个随机字符有什么作用?