gpt4 book ai didi

gradle - 从 Spring Contract 的合约和基类测试的默认 "test"目录更改

转载 作者:行者123 更新时间:2023-12-03 05:06:29 25 4
gpt4 key购买 nike

我已尝试更改基本测试类的默认测试目录名称,如下所示:

老的:

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com