我有一个设置了JUnit单元测试的Gradle Java项目。有些测试应该失败。他们在我的计算机上执行此操作,但在CI服务器上成功执行,没有错误。
自然的第一个假设是CI服务器配置一定有问题。但是,在无法使它在CodeShip上失败之后,我在Travis上进行了尝试,并得到了相同的结果。在CodeShip中,奇怪的是日志告诉我它根本没有找到任何测试(因此,当然没有失败的测试)。
测试文件位于git repo上(不忽略),所有脚本(无论是Gradle还是CI服务器配置)都非常简单。所以我目前不知道这是什么问题。例如,这是.travis.yml:
language: java
jdk:
- oraclejdk8
这是build.gradle
:
plugins {
id 'java'
}
group 'net.roughdesign.ajiwa'
version '1.0-SNAPSHOT'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.12'
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.3.1'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.3.1'
}
test {
useJUnitPlatform()
}
什么可能导致这种行为?
答案 0 :(得分:1)
错误是混淆了JUnit版本。
// in the Gradle file
testCompile group: 'junit', name: 'junit', version: '4.12'
// in Java code
import org.junit.Test;
// in the Gradle file
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.3.1'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.3.1'
// in Java code
import org.junit.jupiter.api.Test;
import org.junit.Test;
)因此,确实没有 JUnit 5 测试。