这是eclipse编辑器的快照。您可以看到测试和JUnit选项卡。当我尝试运行测试时,它表示终止。
有人知道这里发生了什么吗?
由于
答案 0 :(得分:3)
一种可能性是Eclipse的JUnit运行器因main
方法的存在而感到困惑,并且正在运行而不是测试方法。
尝试评论main
方法。它根本不应该存在,IMO。
(顺便说一句,主方法看起来不对我。我原以为它会将单元测试类作为参数实例化TestSuite
,但你好像给它上课了在测试中。这将没有任何“测试”方法,这可以解释为什么没有运行测试...)
答案 1 :(得分:3)
答案 2 :(得分:2)
如前所述,删除main方法,可能会帮助。如果我没记错的话,从TestCase扩展到Juni3的任何特殊原因?您是否使用@Test注释尝试了Junit 4
例如:
@Test
public void testSomething() {
//you stuff
}
答案 3 :(得分:2)
不确定您的问题是否已经解决。
当我更正了Project
- > Properties
- > Java Compiler
时,我遇到了类似问题 - > JDK Compliance settings
。
我在1.5和1.6之间发生了冲突。当我恢复到1.5(这是当前活动的JRE)时,我的JUnits再次开始工作。
答案 4 :(得分:1)
第一次将junit jar文件添加到构建路径时,我遇到了同样的问题。 确保将junit.jar文件添加到Java Build Path-> Classpath部分,而不是modulepath部分
答案 5 :(得分:0)
手动定义运行行为:右键单击 - >运行方式 - > 运行配置:
然后您可以定义测试用例的每个细节:测试类,测试方法,类路径,junit版本,JVM参数等。
答案 6 :(得分:0)
当我看到没有运行任何测试时,我打开控制台并看到以下错误:
java.lang.UnsupportedClassVersionError: junit/framework/Test (Unsupported major.minor version 49.0)
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.loadTestLoaderClass(RemoteTestRunner.java:328)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.createRawTestLoader(RemoteTestRunner.java:318)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.createLoader(RemoteTestRunner.java:313)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.defaultInit(RemoteTestRunner.java:291)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.init(RemoteTestRunner.java:212)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)
经过进一步调查后,我意识到我使用的junit框架是针对1.6 jre构建的,而我正在构建一个1.3 jre的单元测试。当我针对1.6构建单元测试时,我的测试运行了。或者,我想我可以建立(或找到)针对1.3的junit,我可以保持良好状态。我走的是阻力最小的道路。
答案 7 :(得分:0)
当我在课堂上有两个junit时,发生在我身上。一个jar被隐藏在selenium服务器独立内部。我通过从类路径中删除另一个jar并让运行时在selenium服务器独立中使用junit jar来解决该问题。我在控制台中找不到有关类冲突或java版本警告的任何消息。
答案 8 :(得分:0)
在我的情况下,我已经完成了重构,并且.classpath没有更新,并且控制台显示有关无效类的错误。更新类路径文件后,一切都开始重新运行。
答案 9 :(得分:0)
不确定这是否有帮助,但在我的情况下,我必须在Junit最终开始响应之前更新我的项目配置Maven->更新项目配置
答案 10 :(得分:0)
在我的情况下,我使用的内部课程没有被确定为有资格参加考试。修复是让这个类成为一个静态的内部类:
public class MyClass { //... class I wanted to test
}
这个内部类(即在同一个文件中)用于测试MyClass - 但eclipse没有找到它......除非它是静态的。
public static class MyClassTest { // ....
}
答案 11 :(得分:0)
确保您没有其他进程阻止执行。就我而言,构建工作区正在休眠,阻止所有junit执行。
答案 12 :(得分:0)
在尝试运行 JUnit 测试时,请检查底部区域的“进度”选项卡以查看是否缺少任何项目依赖项。那是我的问题。