JUnit4的Eclipse插件测试执行

时间:2017-05-04 16:43:41

标签: java eclipse unit-testing junit junit4

我有一个JUnit4测试套件,我想在JUnit Plug-in Test运行配置下执行它。 enter image description here

在运行JUnit Test配置时成功传递,但对于插件conf,它以不同方式失败。

例如,如果我使用JUnit4TestAdapter,则ClassCastException会失败,如果我尝试仅通过@RunWith注释运行它,那么就会错误地发现#34;找不到任何方法"错误。对于这两种实现,我在运行配置中使用JUnit4 Test Runner设置。

我用

  • Eclipse Neon.1a版本(4.6.1)
  • Jdk 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加载好了。 有一些与此类问题相关的错误(例如this)但很难理解在这种情况下我能做些什么。

对于第二种情况,我只是尝试在不使用JUnit4的情况下执行简单的JUnit4TestAdapter案例,但它无法找到任何方法。

重新加载日食和重命名方法并没有帮助。 在这种情况下我该怎么办?

1 个答案:

答案 0 :(得分:3)

我发现有几个问题。首先,我逐一考虑解决这个问题。

  

问题#1:所需的执行环境无法匹配:J2SE-1.5

     

问题#2: java.lang.ClassCastException:junit.framework.JUnit4TestAdapter无法强制转换为   junit.framework.Test

问题#1的解决方案:

第一个解决方案:

  1. 右键单击您的项目
  2. 单击“属性”
  3. 点击" Java编译器"左侧菜单上的选项
  4. 在右侧的JDK合规部分下,将其更改为" 1.8"
  5. 第二种解决方案:

    如果在项目中使用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 "build path specifies execution environment J2SE-1.5", even though I changed it to 1.7

    问题#2的解决方案:

    JUnit runner对JUnit 3.8有依赖性。它不会被使用但没有它,整个平台都无法初始化。 所以你需要2个版本,如下所示

    检查你有以下插件

    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)
    3. 如何解决?

      要修复错误,请确保target platform中有org.junit 3.8!

      所有赠送金额都归A Paul

      资源链接:

      https://stackoverflow.com/a/21334162/2293534

      Aaron Digulla评论如下:

        

      尽管org.eclipse.xtext.junit4导入了org.junit   4.5.0,org.eclipse.xtext.junit(注意缺少&#34; 4&#34;最后)似乎依赖于JUnit 3.8。加入旧的,过时的   JUnit包,插件测试开始了。