programing

테스트 러너 'JUnit 4'를 사용하여 테스트를 찾을 수 없습니다.

sourcejob 2023. 1. 17. 21:17
반응형

테스트 러너 'JUnit 4'를 사용하여 테스트를 찾을 수 없습니다.

내 자바 테스트는 이클립스에서 잘 작동했어.그러나 실행 메뉴에서 테스트를 다시 시작하면 다음과 같은 메시지가 나타납니다.

No tests found with test runner 'JUnit 4'

서서 .classpath I all 일일 file all file file file 。jar과 같은 파일이 있습니다.

<classpathentry exported="true" kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
    <classpathentry kind="output" path="bin"/>
</classpath>

이 오류를 해결하고 테스트를 다시 실행하려면 어떻게 해야 합니까?

이런 일이 나한테 일어났어이클립스를 다시 빌드하거나 다시 시작하는 것은 도움이 되지 않았습니다.

테스트 방법 중 하나를 "test..."(JUnit3 스타일)로 이름을 바꾸면 모든 테스트가 검색됩니다.이름을 원래대로 다시 바꿨는데, 지금도 작동해요.

이러한 에러가 발생했을 때, 이클립스는 혼란스러워하는 것처럼 보입니다.Eclipse를 다시 시작하고 프로젝트를 새로 고친 다음 정리한 다음 Eclipse에서 다시 빌드한 후 다시 시도하십시오.대부분의 경우 그것은 마법처럼 작용한다.

테스트 클래스가 "TestCase"를 확장하는지 확인합니다. 확장될 경우 해당 절을 제거하십시오.클래스는 "TestCase" 클래스에서 확장할 필요가 없습니다.내가 만난 대부분의 사건들이야

public class MyTestCase extends TestCase{
  @Test
  public void checkSomething() {
    //...
  }
}
//Result> AssertionFailedError: No test Found in MyTestCase

Test Case에 따라서는 문제가 없습니다.

public class MyTestCase {
  @Test
  public void checkSomething() {
    //...
  }
}
//Works fine

'test' 디렉토리의 컨텍스트 메뉴에서 'Build path' -> 'Use as source folder'를 선택합니다.Eclipse에서는 unitTests.java 파일을 소스 파일로 볼 수 있습니다.'빌드' 디렉토리에 unitTests.class 파일이 없기 때문에 'No JUnit tests found'라는 경고가 발생합니다.

나는 같은 문제에 직면하고 있었고, 그것을 웹상의 나쁜 예와 junit의 내부로 디버깅했다.기본적으로 Junit 4.x의 일부 예시와 같이 클래스를 TestCase로 확장하지 마십시오.명명 규칙 테스트를 사용하거나 주석을 사용하려면 @RunWith(JUnit4.class)를 사용할 수 있습니다.

아사트 메서드에 대한 액세스 권한이 필요한 경우 아사트를 확장하거나 정적 가져오기를 사용합니다.

클래스가 TestCase를 확장하면 Junit 4 Runner를 사용하더라도 3으로 실행됩니다.그 이유는 초기화 코드에는 다음과 같은 검출이 있기 때문입니다.

JUnit3Builder 및 행을 참조하십시오.

boolean isPre4Test(Class<?> testClass) {
    return junit.framework.TestCase.class.isAssignableFrom(testClass);
}

그러면 true가 반환되고 junit4 호환성 테스트는 시행되지 않습니다.

추가해 보다

@이렇게 테스트 방법 위의 테스트

@Test
public void testParse()
{

}

링에 던질 수 있는 또 다른 해결책이 있습니다.에디터 창에서도 패키지 탐색기에서도 테스트 클래스를 실행할 수 없었지만 아웃라인 보기에서 클래스 이름을 마우스 오른쪽 버튼으로 클릭하고 JUnit Test를 선택하면 작동했습니다.어림짐작!

JUnit4에는 테스트 슈트가 없습니다.대신 주석을 사용하거나 이전 JUnit3 이름 규칙을 사용하십시오.

예:

@RunWith(Suite.class)
@SuiteClasses({YourClassWithTests.class})

저도 이런 일이 있었어요.이클립스를 재기동해 보고 테스트 방법 앞에 테스트를 추가했습니다.둘 다 안 먹혔어요.

다음의 순서는 유효했습니다.@BeforeClass 및 @AfterClass에 있는 모든 테스트 방식을 정적 방식으로 변경합니다.

즉, 다음과 같은 형식의 테스트 방법이 있는 경우:

@BeforeClass
public void testBeforeClass(){
}

다음으로 변경합니다.

@BeforeClass
public static void testBeforeClass(){
}

이건 나한테 효과가 있었어.

나는 답을 알아냈다:

이 에러는 이클립스에서 스탠드아론 테스트를 실행했을 때 발생합니다(메서드를 오른쪽 클릭하여 junit 테스트로 실행).

complete class를 junit으로 실행했을 때 파라미터로 테스트가 올바르게 실행되었습니다.

이 문제가 발생하면 파일을 편집하여 저장하기만 하면 됩니다.매력적으로 작용하다.

였습니다.import org.junit.Test;사라졌습니다(또는 추가되지 않았습니까?에 나는 또 것을 제거해야 .import선언(Eclipse가 어떤 선언을 힌트합니다)과 모든 것이 다시 작동하기 시작했습니다.

매우 늦었지만 저에게 문제를 해결한 것은 제 테스트 방법 이름이 모두 "public void test"라는 대문자로 시작됐다는 것입니다.T 소문자가 먹혀들게 했군

나는 제르만의 해결책을 시도했다.우리 반의 모든 방법에서 효과가 있었지만, 나는 내 프로젝트에서 많은 수업이 있다.

그래서 빌드 경로에서 삭제했다가 다시 추가하려고 했습니다.완벽하게 작동했다.

도움이 됐으면 좋겠다.

6년이 지난 지금도 이클립스는 문제가 있고 가끔 JUnits를 찾을 수 없다.

에서 나는 10개 이상의 Mars 2가 했다.@Test주석을 추가합니다.추가 시험을 코멘트하고, 시험 수업을 진행하고, 코멘트를 풀고 다시 수업을 진행해야 합니다.★★★★★★★★★★★★★★★★★★▼

JUnit 부팅 구성이 개별 테스트 클래스용일 수 있으며, 어떤 이유로 해당 구성을 "소스 폴더, 패키지 또는 프로젝트에서 모든 테스트를 실행"하도록 변경했을 수 있습니다.

그러나 이 경우 "No tests found with test runner 'JUnit 4'" 오류 메시지가 표시될 수 있습니다.

한 거 아니에요?@Test석입니니다다
이 Wiki 페이지를 참조해 주세요.

제 사례를 수정한 것은 @JamesG의 답변과 비슷했습니다.Eclipse를 재기동하여 프로젝트를 리빌드하고 리프레쉬했습니다.그러나 그 전에 먼저 프로젝트를 종료하고(패키지 탐색기에서 오른쪽 클릭 프로젝트 -> 프로젝트 닫기) 다시 열었습니다.그리고 효과가 있었다.

앞서 설명한 궁극의 솔루션을 찾기 전에 찾은 회피책:테스트 클래스를 복사하고 테스트 클래스를 JUnit으로 실행합니다.

테스트 대상 폴더가 원본 폴더인지 확인합니다.그렇지 않은 경우 - 마우스 오른쪽 버튼을 클릭하여 원본 폴더로 사용합니다.

프로젝트를 닫았다가 열었더니 효과가 있었어요.

Junit Test를 하위 버전(예: Junit 3)에서 Junit 4로 변경했을 가능성이 있습니다.다음 절차를 따릅니다.-

1. Right Click on class
2. Select Run as >> "Run Configurations"
3. Check your "Test Runner" option in new window
4. If it not same as maven change it for example change it as Junit 4.

[프로젝트] 우클릭 -> [빌드 의존관계] -> 빌드 경로에서 제외된 의존관계 삭제 -> [확인]을 클릭합니다.

[프로젝트] -> [메이븐]-> [프로젝트 갱신]를 오른쪽 클릭합니다.

당신은 가도 돼요.

이 문제는 다음과 같이 해결할 수 있습니다.

  • [ Test ] > [ Build Path ]> [ Use as Source Folder ]라는 이름의 폴더를 오른쪽 클릭합니다.
  • 또는 classpath를 다음과 같이 설정할 수 있습니다.<classpathentry kind="src" path="src/test/java"/>테스트 패키지로 "src/test/java"를 대체합니다.

이 문제는 junit이 소스 코드를 인식할 수 없기 때문에 발생했습니다.d

최근 이클립스에서 수정된 것 같은 문제가 발생했습니다.

eclipse-java 4.11.0,2019-03:R -> 4.12.0,2019-06:R

더하다@Test네 시험 위에.
마우스를 주석으로 이동합니다.
'클래스 경로에 junit 4 라이브러리 추가'를 선택합니다.

Eclipse 프로젝트 메이븐 기반입니까?이 경우 m2eclipse 버전을 업데이트해야 할 수 있습니다.

간단한 메모:저는 Eclipse에 프로젝트를 가지고 있습니다.이 프로젝트는 Eclipse에 있는 "새로운 Maven 프로젝트" 마법사를 사용하여 처음 생성되었습니다.유닛 테스트에는 JUnit 4.5를 사용하고 있으며, 명령줄에서 maven을 사용하여 테스트를 실행할 수 있고, Eclipse에서 JUnit 테스트로 실행을 사용하여 개별 테스트를 실행할 수 있습니다.그러나 JUnit 테스트로 실행을 호출하여 프로젝트의 모든 테스트를 실행하려고 하면...프로젝트 루트 노드에서 Eclipse는 "테스트 러너 junit 4를 사용하여 테스트를 찾을 수 없습니다."라고 불만을 표시했습니다.m2eclipse 업데이트 사이트에서 최신 안정적인 개발 빌드로 m2eclipse를 업그레이드하면 해결됩니다(구체적으로는 Eclipse Galileo에서 버전 0.9.8.2907201116으로 업그레이드했습니다).

연락처 : http://nuin.blogspot.com/2009/07/m2eclipse-and-junit4-no-tests-found.html

저도 그랬어요.Eclipse에서 새로운 Java Class 파일을 만들지 않았기 때문에 컴파일이 되지 않았습니다.코드가 아직 존재하지 않는 경우 Java 클래스 파일에 복사한 후 컴파일합니다.

나는 이클립스가 당신의 테스트 수업이 다음 시간까지 확장된다면 JUnit 3 스타일 테스트만 하는 것 같다는 것을 알게 되었다.TestCase상속을 없애면 주석은 나에게 효과가 있었다.

Import를 .assert*「 」의 import static org.junit.Assert.*.

저도 JUnit 테스트를 실행하면서 같은 문제에 직면했습니다.메인 테스트 기능 바로 위에 @Test라는 주석을 붙여서 해결했습니다.

커맨드 라인에서 MVN 청소를 한 후 프로젝트-> 일식 청소를 해야 했습니다.미리 반 이름을 바꿨다가 다시 이름을 바꿨는데 그게 도움이 되진 않을 것 같아요.

m2e 1.4로 하다테스트는 메이븐과 진행했지만 이클립스는...Maven>Update project.

m2e에 의해 생성된 .classpath에 몇 줄을 추가하는 것이 해결책이었습니다.전화가 막히네요.

<classpathentry kind="src" output="target/test-classes" path="src/test/java">
  <attributes>
    <attribute name="optional" value="true"/>
    <attribute name="maven.pomderived" value="true"/>
  </attributes>
</classpathentry>

언급URL : https://stackoverflow.com/questions/2332832/no-tests-found-with-test-runner-junit-4

반응형