繁体   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