2017-12-08 7 views
0

JUnit 테스트를 실행할 때 initializationError가 발생했습니다. 일치하는 테스트가 없습니다. 이 같은 테스트 코드는 다음과 같습니다 동안JUnit 테스트에 java.lang.Exception이있는 initializationError가 있습니다. 일치하는 테스트가 없습니다.

prodapi-main-junit 
initializationError(org.junit.runner.manipulation.Filter) 
java.lang.Exception: No tests found matching [{ExactMatcher:fDisplayName=testCreateSite], {ExactMatcher:fDisplayName=testCreateSite(com.company.product.api.web.rest.HostControllerTest)], {LeadingIdentifierMatcher:fClassName=com.company.product.api.web.rest.HostControllerTest,fLeadingIdentifier=testCreateSite]] from [email protected] 
    at org.junit.internal.requests.FilterRequest.getRunner(FilterRequest.java:40) 
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createFilteredTest(JUnit4TestLoader.java:77) 
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:68) 
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader.java:43) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:444) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382) 
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192) 

:

@RunWith(SpringJUnit4ClassRunner.class) 
@SpringApplicationConfiguration(classes = ProductApplication.class) 
@WebAppConfiguration 
public class HostControllerTest{ 
    @Test 
    public void testCreateSite() throws Exception { 
    ...... 
} 
} 

잘 실행, 클래스의로드를 잘해야한다. 이 모듈과 비슷한 다른 모듈이 있으며, 실행해도 좋습니다.

나는 가능한 원인을 확인했다 :

  1. 누군가가 말했다이 오류가없는 "테스트"주석 결과 그. 코드에서 볼 수있는 것처럼 주석이있었습니다.
  2. 일부는 빌드 경로가 테스트 소스 폴더 아래에서 빌드를 수행하고, 테스트 클래스를 가져오고, 내 보내야한다고 말했습니다. 그리고 내가 다시 확인한 구성도 잘 작동했습니다.
  3. 아마도 테스트 클래스는 컴파일 시간에 생성되지 않지만 대상 폴더 아래에서 테스트 클래스를 볼 수 있습니다.

다른 가능한 일이 이런 종류의 테스트 오류를 ​​얻을 수 있는지 여부를 모르겠다. 어쩌면 클래스 로더를 확인해야할까요?

+0

로 변경? 혹시'JUnit' 대신 testng에서'@ Test'를 섞은 것입니까? 귀하의 의견에 대해 – mrkernelpanic

+0

@mrkernelpanic님께 감사드립니다. 무슨 뜻인지 모르겠다. 하지만 또 다른 새로운 테스트 기능에 중복 매개 변수가 추가되어 테스트 클래스의 유효성 검사가 실패하게 된 원인을 발견했습니다. – Ron

+0

ok :) 자바 수입을 의미했습니다. – mrkernelpanic

답변

0

googled some answers. 이 경우에 대해 다음과 같은 문제가 있음을 발견했습니다. https://github.com/junit-team/junit4/issues/1277 (FilterRequest가 테스트의 실제 실패 원인 (예외)를 숨길 수 있음) 시도한 단계는 다음과 같습니다.
1. 테스트 기능 만 선택하지 마십시오. 테스트 탭의 "선택한 프로젝트에서 모든 테스트 실행"옵션을 선택한 상태에서 실행 -> "실행 (디버그) 구성"을 클릭 한 후 Junit 프로젝트 이름 을 선택하면
2. 세부 정보를 확인할 수 있습니다. 오류가 다음과 같이

initializationError(com.company.product.api.web.rest.HostControllerTest) 
java.lang.Exception: Method testSetDBConfiguration should have no parameters 
    at org.junit.runners.model.FrameworkMethod.validatePublicVoidNoArg(FrameworkMethod.java:76) 
    at org.junit.runners.ParentRunner.validatePublicVoidNoArgMethods(ParentRunner.java:155) 

위의 식에 의해 주어진 세부 사항에 3.according, 나는 initializedError 단지 disapp 그 함수의 인자를 제거 귀가.

새로운 추가 된 테스트 기능으로 인해이 문제가 발생하므로 불필요한 입력 인수가 있습니다. 잘못된 코드 :

@Test 
public void testSetDBConfiguration(String name) throws Exception { 

는 수입을 확인 했

@Test 
public void testSetDBConfiguration() throws Exception {