簡體   English   中英

JUnit4的Eclipse插件測試執行

[英]Eclipse Plug-in Test execution for JUnit4

我有一個JUnit4測試套件,我想在JUnit Plug-in Test運行配置下執行它。 在此處輸入圖片說明

通過JUnit Test配置運行時,它成功通過,但是對於插件配置,它以不同的方式失敗。

例如,如果我使用JUnit4TestAdapter它將失敗,並顯示ClassCastException ;如果我嘗試僅通過@RunWith批注運行它,則會顯示“找不到方法”錯誤。 對於這兩種實現,我都在運行配置中使用JUnit4 Test Runner設置。

我用

  • Eclipse Neon.1a版本(4.6.1)
  • 傑克1.8
  • 將JUnit 4.1 lib鏈接到插件。

對於第一種情況,似乎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

問題1的解決方案:

第一個解決方案:

  1. 右鍵點擊您的項目
  2. 單擊屬性
  3. 點擊左側菜單中的“ Java編譯器”選項
  4. 在右側的“ JDK符合性”部分下,將其更改為“ 1.8”

第二種解決方案:

如果在項目中使用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

問題2的解決方案:

JUnit運行程序依賴於JUnit 3.8。 它不會被使用,但是如果沒有它,整個平台將無法初始化。 因此,您需要以下兩個版本

檢查您是否有以下插件

org.eclipse.xtext.xbase.junit
org.junit (3.8.2)
org.junit (4.8.2)

如何檢查JUnit?

在月食中,請檢查2個部分。

  1. 檢查項目Properties->Java Build Path->Libraries (tab)
  2. 檢查項目的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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM