Gradle 从默认值“更改”;测试“;Spring合同目录';s合同和基类测试
我已尝试更改基本测试类的默认测试目录名称,如下所示:Gradle 从默认值“更改”;测试“;Spring合同目录';s合同和基类测试,gradle,spring-cloud-contract,Gradle,Spring Cloud Contract,我已尝试更改基本测试类的默认测试目录名称,如下所示: contracts { packageWithBaseClasses = 'com.bignibou' contractsDslDir = new File("${project.rootDir}/src/contracts/resources/contracts") baseClassMappings { baseClassMapping(".*signup*.", "com.bignibou.sig
contracts {
packageWithBaseClasses = 'com.bignibou'
contractsDslDir = new File("${project.rootDir}/src/contracts/resources/contracts")
baseClassMappings {
baseClassMapping(".*signup*.", "com.bignibou.signup.SignupBase")
}
}
旧的:
新的:
以下是我的合同所在的目录:
新的:
这是我的gradle配置:
contracts {
packageWithBaseClasses = 'com.bignibou'
baseClassMappings {
baseClassMapping(".*signup*.", "com.bignibou.signup.SignupBase")
}
}
我对合同测试和集成测试使用相同的gradle配置。见:
sourceSets {
integrationTest {
java.srcDirs = ['src/it/java', 'src/contracts/java']
resources.srcDirs = ['src/it/resources', 'src/contracts/resources']
compileClasspath = sourceSets.main.output + configurations.testRuntime
runtimeClasspath = output + compileClasspath
}
}
但是,由于我将基类测试和契约从test
目录中移动,契约测试也不会运行
编辑:
搜索文档后,我找到了contractsDslDir
属性,可按如下方式使用:
contracts {
packageWithBaseClasses = 'com.bignibou'
contractsDslDir = new File("${project.rootDir}/src/contracts/resources/contracts")
baseClassMappings {
baseClassMapping(".*signup*.", "com.bignibou.signup.SignupBase")
}
}
但是,测试仍然没有运行。。。我还缺少什么
以下是我如何尝试运行测试:
./gradlew clean check
编辑2:
我能够使用contractsDslDir
的以下值获得SpringCloudContract来查找我的合同:
contractsDslDir = new File("./src/contracts/resources/contracts")
现在的问题是,我的测试找不到测试库:
> Task :bignibou-server:compileTestJava FAILED
/Users/julien/Documents/projects/bignibou/bignibou-server/build/generated-test-sources/contracts/com/bignibou/SignupTest.java:3: error: package com.bignibou.signup does not exist
import com.bignibou.signup.SignupBase;
^
/Users/julien/Documents/projects/bignibou/bignibou-server/build/generated-test-sources/contracts/com/bignibou/SignupTest.java:20: error: cannot find symbol
public class SignupTest extends SignupBase {
^
symbol: class SignupBase
2 errors
FAILURE: Build failed with an exception.
编辑3:这很奇怪:Spring云契约似乎仍然绑定到测试
渐变任务(与我定制的集成测试
任务相反)
当我运行/gradlew clean integrationTest
时,甚至不会搜索合同。。。然而,当我运行/gradlew clean test
时,我得到了上面的错误,表明SpringCloudContract正在寻找基类,但没有找到基类
我如何告诉Spring Cloud Contract绑定到我的自定义
integrationTest
gradle任务?目前不支持。请随意查找问题,如果找不到,请创建一个新问题谢谢您的反馈。我已根据建议打开了一个问题:
contractsDslDir = new File("./src/contracts/resources/contracts")
> Task :bignibou-server:compileTestJava FAILED
/Users/julien/Documents/projects/bignibou/bignibou-server/build/generated-test-sources/contracts/com/bignibou/SignupTest.java:3: error: package com.bignibou.signup does not exist
import com.bignibou.signup.SignupBase;
^
/Users/julien/Documents/projects/bignibou/bignibou-server/build/generated-test-sources/contracts/com/bignibou/SignupTest.java:20: error: cannot find symbol
public class SignupTest extends SignupBase {
^
symbol: class SignupBase
2 errors
FAILURE: Build failed with an exception.