我正在尝试在Gradle 5.0中配置集成测试。
我看到错误
Could not find method intTestImplementation() for arguments [org.hibernate:hibernate:5.3.7.FINAL] on object of type DefaultDependencyHandler.
我说intTestImplementation
时可以看到gradle dependencies
我正在尝试添加一个依赖项
intTestImplementation 'org.hibernate:hibernate:5.3.7.FINAL'
task integrationTest(type: Test) {
description = 'Runs integration tests.'
group = 'verification'
testClassesDirs = sourceSets.intTest.output.classesDirs
classpath = sourceSets.intTest.runtimeClasspath
shouldRunAfter test
}
sourceSets {
intTest {
java.srcDir file('src/integrationTest/java')
resources.srcDir file('src/integrationTest/resources') // to add the resources
}
}
答案 0 :(得分:0)
您可以尝试以下两个选项之一,看看其中一些是否对您有用:
a)以这种方式声明的自定义sourceSets
:
sourceSets { intTest { java { srcDirs = ['src/integrationTest/java'] } resources { srcDirs = ['src/integrationTest/resources'] } compileClasspath += sourceSets.main.output + sourceSets.main.compileClasspath + sourceSets.test.compileClasspath runtimeClasspath += sourceSets.main.output + sourceSets.main.runtimeClasspath + sourceSets.test.runtimeClasspath } }
在这种情况下,您将以与测试依赖项相同的方式声明集成测试的依赖项。就是这样:
testImplementation 'org.hibernate:hibernate:5.3.7.FINAL'
b)intTestImplementation
必须在自定义sourceSets
之后声明:
sourceSets { intTest { java { srcDirs = ['src/integrationTest/java'] } resources { srcDirs = ['src/integrationTest/resources'] } } } dependencies { intTestImplementation 'org.hibernate:hibernate:5.3.7.FINAL' }
答案 1 :(得分:0)
我收到了类似的消息,因为我在 sourceSets
之后定义了 dependencies