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.