我正在尝试从Eclipse运行JUnit
测试,但在运行这些测试时,我得到ClassNotFound
异常
完成堆栈跟踪如下:
java.lang.NoClassDefFoundError:of 引起:java.lang.ClassNotFoundException:of 在java.net.URLClassLoader $ 1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) 在java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:307) 在sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:301) 在java.lang.ClassLoader.loadClass(ClassLoader.java:248) 线程“main”中的异常
我已经搜索了谷歌,并发现有几个人面临这个问题,但他们似乎都没有解决我的问题。这可能是由于平台的差异
我的开发平台如下
OS: Windows XP
Eclipse JUNO
JUnit4
Maven2
同时,如果我使用maven运行这个项目,它运行得非常好。
对我来说最奇怪的部分是抛出ClassNotFound
异常的类的名称。该课程的名称为of
。
这让我完全感到震惊。
此外,我上面列出的堆栈跟踪,就是我得到错误时所得到的所有内容。
我已经被困在这个问题上2天了,任何帮助将不胜感激。
答案 0 :(得分:11)
我尝试了这里和其他帖子中提到的所有内容。人们提供的一些解决方案是:
还有很多很多,但我找到的工作方式如下:关闭开发环境。从我的本地Maven存储库中删除项目使用的jar。打开IDE。建立项目。运行测试。
经过几个小时的敲击我的键盘并遵循建议的解决方案,这一个工作!如果这不起作用,您可以尝试搜索我上面列出的解决方案。
答案 1 :(得分:7)
在Eclipse中右键单击项目名称并选择“Maven - > update project”通常可以解决此问题。
答案 2 :(得分:1)
我知道这个问题已经得到解答,但我仍然会在这里分享我的解决方案,
确保'src / test / java'的输出文件夹已设置为'target / test-classes',这在许多其他帖子中已有说明,所以我在此不再重复。
如果它仍然不起作用,则很可能在编译单元测试类时出现错误。去'窗口' - >打开“错误日志”视图,您应该能够看到错误消息的详细信息。
对于我的情况,之前下载的依赖jar由于网络问题而以某种方式损坏,因此只需从本地存储库中删除jar并使用'maven' - > '更新配置'再次下载。
然后一切正常!
答案 3 :(得分:1)
答案 4 :(得分:0)
尝试在eclipse中将透视切换到JUnit并再次运行测试
答案 5 :(得分:0)
尽管我看到了所有答案和其他帖子。我将总结一下我的努力:
这个项目的配置可能不适合同一工作区中的其他项目。 (如何解决这个问题可能是另一个问题)
因此,关闭此工作区,仅为此项目启动一个干净的工作区。
答案 6 :(得分:0)
面临同样的问题。这个简单的步骤为我解决了它。
从项目的构建路径中删除JUnit并重新添加。
如果设置为 自动构建 ,您的工作区将再次构建。如果未设置为自动构建,则构建您的项目。你的问题应该解决了。
答案 7 :(得分:0)
您应该添加您使用的类(例如spring-boot):
@RunWith(SpringRunner.class)
@SpringBootTest(classes = {DataPoint.class})
public class DataPointTest {
@Test
public void TestBuilder() {
DataPoint.Builder builder = new DataPoint.Builder();
DataPoint dataPoint = builder.withCount(4).withFirst(1).build();
assert dataPoint.getCount() == 4 && dataPoint.getFirst() == 1;
}
}
答案 8 :(得分:0)
您还可以在POM.xml中查看信息
我有同样的问题。设置代码时,我的项目名称不匹配。
<groupId>CucumberTest</groupId>
<artifactId>com.ProjectName</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>com.ProjectName</name>
<url>http://maven.apache.org</url>
在POM.xml中更改项目名称后,它工作正常。