[英]Eclipse Plug-in Test execution for JUnit4
我有一個JUnit4
測試套件,我想在JUnit Plug-in Test
運行配置下執行它。
通過JUnit Test
配置運行時,它成功通過,但是對於插件配置,它以不同的方式失敗。
例如,如果我使用JUnit4TestAdapter
它將失敗,並顯示ClassCastException
;如果我嘗試僅通過@RunWith
批注運行它,則會顯示“找不到方法”錯誤。 對於這兩種實現,我都在運行配置中使用JUnit4
Test Runner設置。
我用
對於第一種情況,似乎Eclipse在執行套件時繼續使用JUnit3版本。 這里是:
@RunWith(Suite.class)
@SuiteClasses({ DndTest.class })
public class JSTestSuite {
public static Test suite() {
return new JUnit4TestAdapter(JSTestSuite.class);
}
}
例外是:
java.lang.ClassCastException: junit.framework.JUnit4TestAdapter cannot be cast to junit.framework.Test
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.getTest(RemoteTestRunner.java:403)
開始測試時,控制台中出現一條奇怪的日志消息:
!ENTRY org.eclipse.update.configurator 2017-05-04 17:58:57.279
!MESSAGE Could not install bundle ../../platform/eclipse/plugins/org.eclipse.jdt.junit4.runtime_1.1.600.v20160505-0715.jar No match is available for the required execution environment: J2SE-1.5
我看到這個lib已經放好了,但是我不明白為什么它無法加載。 對於JUnit3
Test Runner設置,可以很好地加載junit3 lib。 有關於此類問題(如一些bug 這樣 ),但它確實很難理解我能在這種情況下做的。
對於第二種情況下我只是嘗試執行簡單JUnit4
不使用的情況下JUnit4TestAdapter
,卻找不到任何方法。
重新加載日食和重命名方法沒有幫助。 在這種情況下我該怎么辦?
我發現有幾個問題。 首先,我逐一考慮解決問題。
問題#1:沒有匹配項可用於所需的執行環境:J2SE-1.5
問題2: java.lang.ClassCastException:無法將junit.framework.JUnit4TestAdapter強制轉換為junit.framework.Test
如果在項目中使用maven,則可以如下更改pom.xml文件:
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
資源鏈接: Maven“構建路徑指定了執行環境J2SE-1.5”,即使我將其更改為1.7
JUnit運行程序依賴於JUnit 3.8。 它不會被使用,但是如果沒有它,整個平台將無法初始化。 因此,您需要以下兩個版本
檢查您是否有以下插件
org.eclipse.xtext.xbase.junit
org.junit (3.8.2)
org.junit (4.8.2)
在月食中,請檢查2個部分。
Properties->Java Build Path->Libraries (tab)
Run Configurations->JUnit->Classpath (tab)
要修復該錯誤,請確保您在目標平台上具有org.junit 3.8!
一切歸功於保羅 。
https://stackoverflow.com/a/21334162/2293534
亞倫·迪古拉(Aaron Digulla )評論如下:
盡管org.eclipse.xtext.junit4導入了org.junit 4.5.0,但org.eclipse.xtext.junit(注意末尾缺少的“ 4”)似乎與JUnit 3.8有依賴關系。 在添加舊的,過時的JUnit包之后,插件測試開始。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.