[英]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.