Eclipse에서 JUnit-Test를 시작하려고하면 “ClassNotFoundException”이 발생합니다. 콘솔에서 “mvn test”를 실행하면 모든 것이 잘 작동합니다. 또한 Eclipse에서보고 된 문제가 없습니다.
내 프로젝트 구조는 다음과 같습니다.
- 부모 프로젝트 (pom-packaging)
- 웹 프로젝트 (war-packaging-내 JUnit-test가 여기에 있음)
- Flex 프로젝트
- 구성 프로젝트
편집 : 어떻게 수업을 찾을 수 없습니까? 특별한 라이브러리가없는 간단한 HelloWorld-Application입니다.
내 JUnit의 실행 구성은 다음과 같습니다.
alt text 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("", ""));
}
}
답변
나는 그 상황을 여러 번 보았고 많은 시도 끝에 해결책을 찾았습니다.
프로젝트 빌드 경로를 확인하고 각 폴더에 대해 특정 출력 폴더를 활성화합니다. 프로젝트의 각 소스 폴더를 하나씩 이동하고 maven이 사용할 출력 폴더를 설정하십시오.
예를 들어 웹 프로젝트 는 웹 프로젝트 아래에 src/main/java
있어야 target/classes
하고 테스트 클래스는 target/test-classes
웹 프로젝트 아래에도 있어야합니다 .
이 구성을 사용하면 Eclipse에서 단위 테스트를 실행할 수 있습니다.
웹 프로젝트의 테스트에 리소스 아래에있는 일부 구성 파일이 필요한 경우 한 가지 더 조언하면 해당 폴더를 소스 폴더로 포함하고 적절한 빌드 경로 구성을 만들어야합니다.
도움이되기를 바랍니다.
답변
Carlos 접근 방식이 도움이되었습니다!
이클립스-java.lang.ClassNotFoundException
junit 실행 구성의 클래스 경로를 확인하십시오.
- 실행 구성 열기
- 시작하려는 jUnit-Test를 클릭하십시오.
- 클래스 경로 탭으로 이동
- 폴더 추가를 시도합니다 (사용자 항목을 클릭하고 고급을 클릭하고 폴더 추가를 클릭 한 다음 확인을 클릭하고 출력 폴더에서 테스트 클래스를 검색합니다 (projektproperties java 빌드 경로, 소스 아래에 있음)).
나를 위해 작동합니다.
답변
빌드 클래스 경로가 정확하므로 컴파일 할 수 있습니다. JUnit의 클래스 경로를 확인해야합니다. 실행 메뉴로 이동하여 ‘실행 대화 상자 열기’를 선택하십시오. 거기에서 당신은 옵션으로 JUnit과 함께 왼쪽에 트리를 볼 수 있습니다. 해당 노드를 열고 테스트를 찾아 선택하십시오. 오른쪽 창에 클래스 경로에 대한 탭이 표시됩니다. 테스트가 인스턴스화하려는 클래스를 찾을 수 있는지 확인하십시오.
편집하다:
이것은 릴리스가 기본 Eclipse 출력 폴더를 변경 한 후 maven 및 그 동작의 문제인 것 같습니다. 나는 어디에 설명 된 해결책을 보았다
- jre가 작동하는 위의 bootclasspath에 maven을 배치하거나
- 달리기
mvn clean test
는 트릭을 수행하거나 - 모든 Eclipse 프로젝트를 새로 고치면 다시 빌드하여 문제가 해결됩니다.
- 프로젝트로 이동하여 Maven-> Update Configuration을 선택하여 문제를 해결하십시오.
처음 세 개에서는 문제가 반복된다는보고가있었습니다. 마지막이 나에게 가장 잘 보이지만 작동하지 않으면 다른 것을 시도하십시오.
답변
빌드 폴더의 클래스 파일이 누락되었을 수 있습니다. 한 가지 해결책은 프로젝트를 정리하고 다시 빌드하는 것입니다.
답변
답변
여기에는 복잡한 제안이 많이 있습니다.
드래그 앤 드롭으로 리소스를 이동하거나 클래스 이름을 리팩토링 한 후 Maven 프로젝트에서이 문제가 여러 번 발생했습니다.
이 경우 문제 테스트 케이스 ( .java
)를 right-click -> Delete
Eclipse에서 터미널 / 파일 브라우저를 통해 다른 위치 로 복사 (이동 아님) 하고 옵션이 주어지면 디스크에서 삭제하도록 선택하고 복사 된 파일을 원래 파일 위치로 이동 / 복사합니다. 그런 다음 Eclipse에서 프로젝트를 선택하고 F5를 눌러 리소스를 새로 고칩니다.
이것은 빠르고 쉽게 할 수 있으며 매번 문제를 영구적으로 해결했습니다.
답변
나는 똑같은 문제가 있었지만 그것을 알아 냈습니다! 프로젝트 파일로 이동하여 마우스 오른쪽 버튼으로 클릭 한 다음 Refresh
F5 를 클릭 하거나 누르십시오. 그런 다음 시도하고 실행하십시오. 그래도 작동하지 않으면 똑같은 문제가 있었고 Eclipse 버전이 쓰레기임을 의미하므로 잊어 버리십시오.
