我已尝试更改基本测试类的默认测试目录名称,如下所示:
老的:
bignibou-server/src/test/java/com/bignibou/signup
新的:
bignibou-server/src/contracts/java/com/bignibou/signup
这是我的契约(Contract)所在的目录:
新的:
bignibou-server/src/contracts/resources/contracts/signup
这是我的gradle配置:
contracts {
packageWithBaseClasses = 'com.bignibou'
baseClassMappings {
baseClassMapping(".*signup*.", "com.bignibou.signup.SignupBase")
}
}
我对 使用相同的 gradle 配置契约(Contract)测试和集成测试 .看:
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
}
}
但是,由于我将基类测试和契约(Contract)从
test
目录,契约(Contract)测试也不运行......编辑 :
搜索文档后,我找到了
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 :
我能够让 Spring Cloud Contract 使用以下值找到我的契约(Contract)
contractsDslDir
: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 Cloud Contracts 似乎仍然绑定(bind)到
test
gradle 任务(而不是我的自定义 integrationTest
一个)...当我运行
./gradlew clean integrationTest
甚至没有搜索契约(Contract)...但是当我运行 ./gradlew clean test
我收到上述错误,表明 Spring Cloud Contract 正在寻找一个基类但没有找到。如何告诉 Spring Cloud Contract 绑定(bind)到我的自定义
integrationTest
毕业任务?
最佳答案
目前不支持。如果找不到问题,请随意查找问题或创建一个新问题
关于gradle - 从 Spring Contract 的合约和基类测试的默认 "test"目录更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57393674/