Eclipse - java.lang.ClassNotFoundException

2022-08-31 10:16:23

当试图从 Eclipse 中启动我的 JUnit-Test 时,我得到了一个“ClassNotFoundException”。从控制台运行“mvn test”时 - 一切正常。此外,Eclipse 中也没有报告任何问题。

我的项目结构如下:

  • 父项目(pom-packaging)
    • Web 项目(战争打包 - 我的 JUnit 测试在这里)
    • 弹性项目
    • 配置项目

编辑:怎么找不到类?这是一个简单的HelloWorld应用程序,没有特殊的库。

这是我的JUnit的运行配置:alt文本 http://www.walkner.biz/_temp/runconfig.png


Testclass(但正如我所说;它也不适用于简单的HelloWorld...):

import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import biz.prognoserechnung.domain.User;
import biz.prognoserechnung.domain.UserRepository;
import biz.prognoserechnung.domain.hibernate.UserHibernateDao;

public class UserDaoTest {
/**
 * the applicationcontext.
 */
private ApplicationContext ctx = null;

/**
 * the user itself.
 */
private User record = null;

/**
 * Interface for the user.
 */
private UserRepository dao = null;

@Before
public void setUp() throws Exception {
String[] paths = { "WEB-INF/applicationContext.xml" };
ctx = new ClassPathXmlApplicationContext(paths);
dao = (UserHibernateDao) ctx.getBean("userRepository");
}

@After
public void tearDown() throws Exception {
dao = null;
}

@Test
public final void testIsUser() throws Exception {
Assert.assertTrue(dao.isUser("John", "Doe"));
}

@Test
    public final void testIsNoUser() throws Exception {
    Assert.assertFalse(dao.isUser("not", "existing"));
        Assert.assertFalse(dao.isUser(null, null));
        Assert.assertFalse(dao.isUser("", ""));
    }
}

答案 1

我遇到过几次这种情况,经过多次尝试,我找到了解决方案。

检查项目生成路径,并为每个文件夹启用特定的输出文件夹。逐个浏览项目的每个源文件夹,并设置 maven 将使用的输出文件夹。

例如,您的Web项目应该在Web项目下具有,测试类也应该在Web项目下具有,等等。src/main/javatarget/classestarget/test-classes

使用此配置将允许您在 eclipse 中执行单元测试。

再提一个建议,如果 Web 项目的测试需要资源下的一些配置文件,请确保将该文件夹作为源文件夹包含在内,并进行正确的生成路径配置。

希望它有帮助。


答案 2

卡洛斯的方法帮助!Eclipse - java.lang.ClassNotFoundException

尝试检查 junit 运行配置的类路径:

  1. 打开运行配置
  2. 单击要启动的 jUnit-Test
  3. 转到类路径选项卡
  4. 尝试添加一个文件夹(单击用户条目,单击高级,单击添加文件夹,单击确定并搜索测试类的输出文件夹(您在projektproperties java构建路径,源代码下找到的那些))

为我工作。