我最近升級(jí)到 JUnit 5,并且我正在嘗試通過(guò) junit-jupiter-vintage 維護(hù)一個(gè) JUnit 4 套件,使用幾乎在任何地方都可以找到示例的地方提供的確切說(shuō)明。請(qǐng)注意,我正在使用離線構(gòu)建,因?yàn)槲冶仨氝@樣做,所以雖然我可以下載我需要的任何 Jar,但我沒(méi)有主動(dòng)連接到任何 Maven 存儲(chǔ)庫(kù)。Gradle 版本是 4.9,-all.zip 發(fā)行版,不是安裝包而是解壓縮并添加到 PATH 變量(一點(diǎn)也不重要)。apply plugin: 'java'repositories{ flatDir dirs: 'file:$rootDir/lib'}test{ useJUnitPlatform()}dependencies{ testImplementation 'org.junit.jupiter:junit-jupiter-api:5.5.0' testCompileOnly 'junit:junit:4.12' testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.5.0' testRuntimeOnly 'org.junit.vintage:junit-vintage-engine:5.5.1'}輸出令人失望:NoClassDefFoundError: org/junit/platform/engine/support/hierarchical/HierarchicalTestEngine這些是在 JUnit Platform jar 中找到的文件,用作 JUnit 5 的啟動(dòng)引擎。Gradle 4.6 及更高版本應(yīng)該原生支持該引擎,我可以在gradle-4.9/lib/plugins/ ... junit-platform-commons-1.0.3.jar junit-platform-engine-1.0.3.jar junit-platform-launcher-1.0.3.jar ...手動(dòng)添加最新平臺(tái)作為 testRuntimeOnly 依賴項(xiàng)似乎允許我的 JUnit 5 測(cè)試文件工作,但它無(wú)法檢測(cè)到我的任何 JUnit4 測(cè)試。這也感覺(jué)像是一個(gè)明顯的 hack,因?yàn)槲铱梢哉业降拿總€(gè)示例構(gòu)建文件都不需要這樣做。我希望如果我能解決 gradle 問(wèn)題,我也能解決我的 JUnit4 問(wèn)題。為什么我的(離線)gradle 構(gòu)建無(wú)法找到 JUnit5 的主要測(cè)試運(yùn)行程序?
Gradle 找不到 JUnit 平臺(tái)
夢(mèng)里花落0921
2023-04-19 10:31:55