Micronaut从2.0.0.M3切换到RC1:Gradle不再执行任何测试

Micronaut从2.0.0.M3切换到RC1:Gradle不再执行任何测试,gradle,micronaut,Gradle,Micronaut,今天我已经从Micronaut 2.0.0.M3切换到它的RC1。此后,Gradle不再重复执行测试作业 输出运行M3: $cat gradle.properties micronautVersion=2.0.0.M3 $./gradlew清洁构建 >配置项目: 由Gradle 6.5执行 >任务:编译Ejava 注意:为4个类型元素创建bean类 >任务:compileTestGroovy [...] >任务:测试 [...] 在25秒内成功构建 14项可执行任务:14项已执行 $ls构建/测

今天我已经从Micronaut 2.0.0.M3切换到它的RC1。此后,Gradle不再重复执行测试作业

输出运行M3:

$cat gradle.properties
micronautVersion=2.0.0.M3
$./gradlew清洁构建
>配置项目:
由Gradle 6.5执行
>任务:编译Ejava
注意:为4个类型元素创建bean类
>任务:compileTestGroovy
[...]
>任务:测试
[...]
在25秒内成功构建
14项可执行任务:14项已执行
$ls构建/测试结果/测试/
二元的
TEST-server.endpoint.ContributorControllerTest.xml
TEST-server.endpoint.PersonControllerTest.xml
对于RC1:

$cat gradle.properties
micronautVersion=2.0.0.RC1
$./gradlew清洁构建
>配置项目:
由Gradle 6.5执行
>任务:编译Ejava
注意:为4个类型元素创建bean类
[...]
14年代成功打造
14项可执行任务:14项已执行
$ls构建/测试结果/测试/
二元的
$ls-s构建/测试结果/测试/二进制/
0.bin输出
4 output.bin.idx
0.bin
没有创建包含测试结果的XML文件;二进制测试输出文件为空。
真的很奇怪。知道这里出了什么问题吗

基督教徒


添加@saw303的回复意见:
首先,我再次运行了
clean build

$cat gradle.properties
micronautVersion=2.0.0.RC1
$./gradlew清洁构建
>配置项目:
由Gradle 6.5执行
-使用Java11.0.7
-使用Groovy 2.5.11
>任务:编译Ejava
注意:为4个类型元素创建bean类
此版本中使用了不推荐的Gradle功能,使其与Gradle 7.0不兼容。
使用“--warning mode all”显示单个弃用警告。
看见https://docs.gradle.org/6.5/userguide/command_line_interface.html#sec:command_line_warnings
在12秒内成功构建
14项可执行任务:14项已执行
现在,让我们用task
test
来尝试它:

$。/gradlew测试
>配置项目:
由Gradle 6.5执行
-使用Java11.0.7
-使用Groovy 2.5.11
此版本中使用了不推荐的Gradle功能,使其与Gradle 7.0不兼容。
使用“--warning mode all”显示单个弃用警告。
看见https://docs.gradle.org/6.5/userguide/command_line_interface.html#sec:command_line_warnings
在658ms中成功构建
5项可执行任务:5项最新任务
执行时间非常短,因此不执行任何测试用例

$ls构建/测试结果/测试/
二元的
运行清洁测试:

$。/gradlew清洁测试
>配置项目:
由Gradle 6.5执行
-使用Java11.0.7
-使用Groovy 2.5.11
>任务:编译Ejava
注意:为4个类型元素创建bean类
此版本中使用了不推荐的Gradle功能,使其与Gradle 7.0不兼容。
使用“--warning mode all”显示单个弃用警告。
看见https://docs.gradle.org/6.5/userguide/command_line_interface.html#sec:command_line_warnings
建立成功的5s
6项可执行任务:6项已执行
结果相同,但未执行测试:

$ls构建/测试结果/测试/
二元的

我注意到,在声明测试依赖关系时,2.0.M3和2.0.RC1之间的build.gradle变化不大

在我们的项目中,我们用Spock编写测试

在RC1之前,已声明测试相关性,例如:

    testAnnotationProcessor(platform("io.micronaut:micronaut-bom:$micronautVersion"))
    testAnnotationProcessor("io.micronaut:micronaut-inject-java")
    testImplementation(platform("io.micronaut:micronaut-bom:$micronautVersion"))
    testImplementation("org.junit.jupiter:junit-jupiter-api")
    testImplementation("io.micronaut.test:micronaut-test-junit5")
    testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine")
在RC1中,测试依赖项声明如下:

    testImplementation(platform("io.micronaut:micronaut-bom:$micronautVersion"))
    testImplementation("io.micronaut:micronaut-inject-groovy")
    testImplementation("org.spockframework:spock-core") {
        exclude group: "org.codehaus.groovy", module: "groovy-all"
    }
    testImplementation("io.micronaut.test:micronaut-test-spock")

在,您可以使用最新版本的Micronaut并预览build.gradle。希望这有帮助

好吧,在对新设置的Micronaut环境(如@saw303所建议)进行了大量修改之后,我发现在我的项目中,
build.gradle
中的以下代码块是所需的以便在使用Micronaut 2.0.0.RC1时执行测试:

// use JUnit 5 platform
test {
    useJUnitPlatform()
}

当此块丢失时,将编译测试,但不执行测试。对于以前的Micronaut 2.0.0.M3,此
useJUnitPlatform()
不是必需的,在没有添加此项的情况下执行测试。

如果手动运行
/gradlew test
会发生什么?您好@saw303,添加了一段来回答您的问题。我无法重现此问题。你能分享一个演示这个问题的示例项目吗?如果是的话,那就更容易找出问题所在。嗨,杰夫,谢谢你的支持。我创造了一个临时GitLab访问令牌(过期2020-06-20),用于对回购协议的只读访问。主分支就足够了:
git克隆https://stack-overflow@gitlab.com/denic-eg/dcmoeller/graph-db.git-b master
with
p2iAPD84ksfyWivepxPA
。在启动
/gradlew clean build
之前,请更改为
server
subdir。其他信息:在运行
rm-rf$HOME/.Gradle/
清除完整的Gradle第三方LIB和包装缓存文件夹后,我得到了相同的结果。我在项目历史记录中来回切换,这是真的,但这不是我的观点:只需在
gradle.properties
中将
M3
更改为
RC1
,然后再次运行
/gradlew test
。请记住,目前所有测试都是使用Groovy Spock测试框架编写的,JUnit中没有,尤其是“Update 20200218”。