我有一个JUnit4
测试套件,我想在JUnit Plug-in Test
运行配置下执行它。
在运行JUnit Test
配置时成功传递,但对于插件conf,它以不同方式失败。
例如,如果我使用JUnit4TestAdapter
,则ClassCastException
会失败,如果我尝试仅通过@RunWith
注释运行它,那么就会错误地发现#34;找不到任何方法"错误。对于这两种实现,我在运行配置中使用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加载好了。
有一些与此类问题相关的错误(例如this)但很难理解在这种情况下我能做些什么。
对于第二种情况,我只是尝试在不使用JUnit4
的情况下执行简单的JUnit4TestAdapter
案例,但它无法找到任何方法。
重新加载日食和重命名方法并没有帮助。 在这种情况下我该怎么办?
答案 0 :(得分:3)
我发现有几个问题。首先,我逐一考虑解决这个问题。
问题#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 "build path specifies execution environment J2SE-1.5", even though I changed it to 1.7
JUnit runner对JUnit 3.8有依赖性。它不会被使用但没有它,整个平台都无法初始化。 所以你需要2个版本,如下所示
检查你有以下插件
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)
要修复错误,请确保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包,插件测试开始了。