클래스를 찾을 수 없음 : IntelliJ에서 빈 테스트 스위트


183

대학에서 컴퓨터 과학 프로그램을 시작하고 있으며 IntelliJ에 문제가 있습니다. 단위 테스트를 실행하려고하면 메시지가 나타납니다.

Process finished with exit code 1
Class not found: "edu.macalester.comp124.hw0.AreaTest"Empty test suite.

또한 화면 왼쪽에 "테스트를 찾을 수 없습니다"라는 메시지가 표시됩니다. 내 테스트 코드는 다음과 같습니다.

package edu.macalester.comp124.hw0;


import org.junit.Test;
import static org.junit.Assert.*;

public class AreaTest {

    @Test
    public void testSquare() {
    assertEquals(Area.getSquareArea(3.0), 9.0, 0.001);
    }

    @Test
    public void testCircle() {
    assertEquals(Area.getCircleArea(3.0), 28.2743, 0.001);
    }
}

그리고 내 프로젝트 코드는 다음과 같습니다.

package edu.macalester.comp124.hw0;

import java.lang.Math;
public class Area {

/**
 * Calculates the area of a square.
 * @param sideLength The length of the side of a square
 * @return The area
 */
public static double getSquareArea(double sideLength) {
    // Has been replaced by correct formula
    return sideLength * sideLength;
}

/**
 * Calculates the area of a circle.
 * @param radius The radius of the circle
 * @return The area
 */
public static double getCircleArea(double radius) {
    // Replaced by correct value
    return radius * 2 * Math.PI;
}

}

테스트가 작동하도록하려면 어떻게해야합니까? 최신 버전의 IntelliJ IDEA CE를 사용하고 있습니다.


7
너무 많은 일이 잘못 될 수 있습니다. 나를 위해, 그것은 mvn clean package터미널에 입력하는 것만 큼 간단했습니다 . IntelliJ가 왜 처음에 프로젝트를 잘못 가져 왔는지 확실하지 않습니다.
MarkHu

1
나를 위해 그냥 "테스트 리소스 루트"로 폴더를 만들 ...
Xin Meng


Build-> Clean and Build-> Rebuild로 충분했습니다.
gustavoknz

답변:


109

같은 메시지를 받았습니다. Run / Debug 구성을 제거해야했습니다.

필자의 경우에는 전에 단위 테스트를 로컬 테스트로 실행했습니다. 그 후 테스트를 androidTest 패키지로 옮기고 다시 실행하려고했습니다. Android Studio는 마지막 실행 구성을 기억하여 동일한 오류가 발생하는 로컬 단위 테스트로 다시 실행하려고했습니다.

구성을 제거하고 테스트를 다시 실행 한 후 새로운 구성을 생성하고 작동했습니다.

여기에 이미지 설명을 입력하십시오


나는 대부분의 경우 귀하의 솔루션이 가장 보편적이고 가장 마술이 적다고 생각합니다. 내 프로젝트에서 매력처럼 일했습니다.
ba3a

나는 그것을 시도했지만 자체적으로 작동하지 않았다. 나는 또한 현금을 무효화해야했다. File > Cashes / Restart
Lukasz

나는 그것을 시도하고 현금을 무효화했다. 그러나 여전히 작동하지 않습니다.
날개

대화 상자를 닫는 대신 명백한 확인 버튼을 클릭하는 것을 기억 한 후에 이것은 나를 위해 일했습니다 :-)
rimsky

내 Android Studio에서 "특정 계측 러너"항목이 표시되지 않습니다.
david

59

나는 갔었다

File -> Invalidate Caches/Restart...

그리고 그것은 나를 위해 일했습니다.


6
이 작업을 수행 한 다음 테스트 구성도 삭제해야했습니다.
Johan Henkens

내 경우에는 도움이되지 않았습니다.
user3791111 2018 년

파일> 캐시 무효화 / 재시작> 방금 다시 시작 하면 저에게
효과적

49

나는 같은 문제가 있었다. 나는 프로젝트를 재건했고 그것은 나를 도왔다.

빌드 -> 프로젝트 다시 작성으로 이동 하십시오.

그런 다음 Maven 도구를 사용하는 경우 모든 Maven 프로젝트 다시 가져 오기 옵션을 사용하는 것이 좋습니다.


도움이되지 않으면 다른 가능한 해결책을 시도해보십시오.

  • 이동 파일 -> 무효화 캐시 / 다시 시작 -> 무효화하고 다시 시작

또는:

  • Maven 프로젝트 구조에서 src / main / javajava 디렉토리를 마우스 오른쪽 버튼으로 클릭 하고 옵션으로 디렉토리 표시 -> 소스 루트를 선택하십시오.

    마찬가지로 테스트 디렉토리 와 동일하게 수행하십시오 . src / test / javajava 디렉토리를 마우스 오른쪽 단추로 클릭하고 디렉토리 표시 옵션을 선택하십시오 as- > 테스트 소스 루트

또는:

  • 실행 -> 구성 편집으로 이동하고 JUnit 섹션에서 테스트 구성 제거로 이동 하십시오 . 변경 승인. 그런 다음 테스트를 실행하십시오. 새로운 구성이 자동으로 생성되어야합니다.

또는:

  • 이동 파일 -> 프로젝트 구조 , 선택 모듈을 다음 적절한 모듈을 선택하고 이동, 경로 탭을 선택합니다.
    옵션 확인 :
    라디오 버튼 모듈 컴파일 출력 경로 사용을 선택해야합니다.

    출력 경로 는 프로젝트 내부에 있어야합니다. 또한 테스트 출력 경로 는 프로젝트 내부의 디렉토리 여야합니다. 예를 들면 다음과 유사합니다.
    출력 경로 : C : \ path \ to \ your \ module \ yourModule \ target \ classes
    테스트 출력 경로 : C : \ path \ to \ your \ module \ yourModule \ target \ test-classes

    출력 제외 경로 를 선택 해제해야합니다.

10
프로젝트 재건 ( Build -> Rebuild Project)이 저에게 효과적이었습니다. 감사합니다!
Francisco C.

이 솔루션은 모듈과 출력 경로를 사용하는 마지막 작업이었습니다. 감사.
모하마드 간지

더 절망적 인 해결책으로 .idea 파일을 삭제하고 프로젝트를 다시여십시오. 그러나 일부 구성 / 설정이 손실됩니다.
Aaron

<project-root>/src/test/java테스트 루트로 설정 하고 Build -> Rebuild Project나를 위해 일했습니다. 또한 테스트가 포함 된 클래스가 패키지 이름으로 시작하는 패키지에있을 때 java.*보안 예외가 발생했습니다.
마스터 치프

문제는 의존성이 오래되었다는 것입니다
dellasavia

17

테스트 폴더를 별도의 모듈로 가져온 경우에도 발생할 수 있습니다 (프로젝트보기의 폴더 아이콘에 작은 사각형이 표시됨).
프로젝트보기에서 테스트 폴더를 선택하여 모듈을 제거하고을 누르십시오 DEL.
그런 다음 테스트를 시작하십시오.
오류 메시지와 함께 팝업 대화 상자가 나타나면 모듈을 선택하지 않았다면 드롭 다운에서 루트 모듈을 지정하십시오.


3
이것은 또한 내 문제였습니다 (테스트 폴더의 사각형-그 의미를 알지 못했을 것입니다!); 수정을 위해 실행 구성을 열고 "모듈의 클래스 경로 사용 :"이 테스트 모듈로 설정되어 있음을 발견했습니다. 대신 프로젝트의 클래스 경로로 변경했는데 정상적으로 작동했습니다. "별도의 모듈"을 찾아 주셔서 감사합니다!
Redboots

이것이 바로 나에게 일어난 일입니다. start.spring.io를 사용하여 Spring 프로젝트를 만들고 열었습니다. 나중에 SpringBootTest를 시작하고 "클래스를 찾을 수 없음 :"... "빈 테스트 스위트"오류가 발생했습니다. 솔루션을 따르고 테스트 폴더에서 DELETE 버튼을 누르고 실행 구성을 다시 만든 후 모든 것이 정상이었습니다. 추가 힌트 : 테스트 폴더에서 삭제 버튼을 누르면 "파일이 삭제되지 않습니다"와 같은 대화 상자가 나타납니다. 따라서 버튼을 누르는 것을 두려워하지 마십시오.
kleenxcoder

14

새로운 IntelliJ 프로젝트를 시작한 후 비슷한 문제가 발생했습니다. 모듈에 대한 "모듈 컴파일 출력 경로"가 올바르게 지정되지 않았습니다. 모듈의 "컴파일 출력 경로"의 경로를 올바른 위치에 할당하면 문제가 해결되었습니다. 컴파일 출력 경로는 프로젝트 설정에서 할당됩니다. 모듈에서 관련 모듈을 선택하고 경로 탭을 선택하십시오.

프로젝트 설정 | 모듈 대화 상자

스크린 샷

... 부모 프로젝트 폴더에있는 "output"이라는 폴더로 컴파일러 출력을 보냈습니다.


14

제 경우에는 올바른 장소에 다른 모든 것이 있었지만 kotlin 으로 Java 라이브러리 를 작업 중 이었습니다 . 플러그인을 적용하는 것을 잊었습니다.

apply plugin: 'kotlin-android'

이제는 예상대로 작동합니다.


1
저도 마찬가지입니다. 모듈을 만들 때 Kotlin 옵션이 없다는 것은 짜증납니다.
Rupert Rawnsley

11

그래서 내 문제는 폴더 이름과 관련이 있습니다. IntelliJ가 좋아하지 않는 코드 폴더 Classes 2016/2017을 호출했습니다. 슬래시 (또는 다른 불쾌감을주는 캐릭터)를 제거하고 프로젝트를 다시 가져 오기만하면됩니다.


이것은 나를 도왔다. 다른 사람들을 위해 Dropbox에 폴더가있었습니다. Dropbox에서 옮기고 다시 가져 오면 문제가 해결되었습니다.
Mick Sear

이 답변은 노벨 평화상을받을 자격이 있습니다!
Ali Abbas Jaffri

7

Android Studio 3.0 이상에서는 때때로 UI 테스트가 단위 테스트로 해석되어 대상 배포 선택을 요구하지 않습니다. 구성 편집으로 이동하여 통합 테스트로 표시하면 작동하기 시작합니다.


또한 Android Studio 3.0.1에서는 테스트 옆의 실행 버튼이 작동하지 않습니다. 3.1 카나리아 8로 업데이트 한 후 다시 작동하기 시작했습니다.
Marc


6

프로젝트에 컴파일 문제가 있으면 테스트가 실행되지 않을 수 있습니다. 먼저 빌드-> 빌드 프로젝트로 프로젝트를 빌드하십시오. 성공적인 컴파일 후 테스트를 다시 실행하십시오.

아무것도 작동하지 않으면 프로젝트 창을 닫고 프로젝트를 삭제하고 Gradle / Maven 프로젝트로 다시 가져와 기존 IntelliJ 생성 파일을 재정 의하여 모든 것을 설정합니다.

캐시를 무효화 할 수도 있습니다.

File -> Invalidate Caches/Restart


5

jarMaven에서 일부 를 가져올 때도 같은 질문이 있었고 그 결과 empty-test-suite오류가 발생했습니다.

제 경우에는 maven이 모듈 파일을 재설정했기 때문입니다. 기본 구성을 지우면 해결되었습니다.

  1. 열기 프로젝트 구조shift- ctrl- alt- s바로 가기

PModules 소스의 스크린 샷

  1. 모듈> 소스를보고 소스 패키지 또는 테스트 패키지를 채우십시오.

5

프로젝트 또는 모듈을 다시 가져 오면 문제를 해결할 수 있습니다. 개발할 때 패키지 이름을 바꾸어이 문제를 해결했습니다. 그러나 출력 경로테스트 출력 경로 는 이전 경로입니다. 따라서 intellij는 이전 경로에서 수업을 찾을 수 없습니다. 가장 쉬운 방법은 출력 경로와 테스트 출력 경로를 수정하는 것입니다.

Intellij 모듈 설정


어떤 이유로 MacO에서 프로젝트 경로 상속이 작동하지 않는 이유는 무엇입니까?
Johnny_D

@Johnny_D 문제가 패키지 이름 바꾸기로 인한 것입니까?
Bejond

5

나는 같은 문제 (Android Studio 3.2 Canary 4)를 가지고 있었고 다른 답변에 설명 된 대부분의 제안을 성공없이 시도했습니다. 파일 testandroidTest폴더 로 옮긴 후에 발생했습니다 . 여전히 계측 테스트 대신 테스트로 실행 구성에 표시되었습니다.

마침내 새 파일을 만듭니다.

  1. 이름이 다른 새 계측 테스트 클래스를 만듭니다.
  2. 수업에서 모든 코드를 복사하십시오.
  3. 그것을 실행하십시오.
  4. 이전 클래스를 삭제하십시오.
  5. 새 클래스의 이름을 원하는 이름으로 바꿉니다.

나쁘지 않은 생각 =) 감사합니다!
Andrew Grow

5

흥미롭게도 다른 이유로 인해이 문제에 여러 번 직면했습니다. 예를 들어 캐시 무효화 및 재시작 이 도움이되었습니다.

마지막으로 파일-> 프로젝트 구조-> 프로젝트-> 프로젝트 컴파일러 출력 에서 출력 경로를 다음과 같이 수정하여 수정 했습니다. absolute_path_of_package / out

예를 들어 : / Users / random-guy / myWorkspace / src / DummyProject / out


이것이 내 테스트 스위트를 실행시킨 것입니다! 감사!
Frank

3

이는 모듈 및 / 또는 프로젝트 JDBC가 올바르게 구성되지 않은 경우에도 발생합니다.


"적절한 구성"을 명확히하십시오.이 문제가있는 사용자에게는 이것이 도움이되지 않는다고 생각합니다. 감사!
eggmatters

3

.ideaSBT 프로젝트를 삭제 하고 다시 가져 오면이 문제가 해결되었습니다.


.idea 폴더를 삭제하고 maven 프로젝트를 다시 가져온 후에 작동합니다 (y)
Amine Soumiaa

이것은 나에게도 동일했습니다. 위의 제안을했지만 아무것도 효과가 없었습니다. 하위 모듈에서 .idea 기본 폴더와 .iml 파일을 삭제했습니다.
데니스

3

필자의 경우 IntelliJ는 이상한 이유로 테스트 소스를 컴파일하지 않았습니다. 간단히 빌드 구성을 수정 clean test-compile하고 Before launch섹션에 maven 목표 를 추가했습니다.


위의 모든 것을 시도했지만 이것 만 도움이되었습니다 :) 감사합니다!
Antenka

2

내 경우에는 테스트 이름에 문제가있었습니다 :).

이름이 dummyNameTest다음과 같은 경우에는 테스트를받지 못하지만 testDummyName모든 것이 정상인 경우


1

나는 같은 문제가 있었다. 필자의 경우 기본 폴더 외부의 패키지 / 폴더에 테스트 클래스가 있습니다. 그러나 Run 구성을 확인했을 때 항상 main 폴더 내부의 클래스를 찾으려고했습니다 (main 외부의 패키지는 아닙니다). 따라서이 경우 패키지를 실행 구성이 가리키는 위치로 이동해야합니다. 또는 패키지를 가리 키도록 실행 구성을 변경하십시오.


1

테스트에 Android 장치 (에뮬레이터 또는 하드웨어)가 필요합니까?
그렇다면 "악기 테스트"라고하며 "module-name / src / androidTest / java /"에 있습니다.
그렇지 않은 경우 "로컬 유닛 테스트"라고하며 "module-name / src / test / java"에 있습니다.

https://developer.android.com/training/testing/start/index.html

로컬 단위 테스트를 작성했기 때문에 동일한 오류가 발생했지만 인스트루먼트 된 테스트를 위해 폴더에 배치되었습니다. 로컬 유닛 테스트를 "src / test / java"폴더로 옮기면 해결되었습니다.


1

같은 오류가 발생했습니다. 기기가 Android 스튜디오에 연결되지 않았습니다. 스튜디오에 연결했을 때 효과가있다. 이것은 내 문제를 해결합니다.


1

폴더가 테스트 소스로 설정되지 않았기 때문에 모듈 설정> 모듈을 통해 수행 할 수 있습니다.


1

나를 위해 프로젝트는 프로젝트 외부에서 컴파일되었습니다. 나는 단지 길을 바꾼다. 경로를 변경하십시오 (Mac을 사용하고 있습니다).

  • 파일-> 프로젝트 구조로 이동하십시오.
  • 왼쪽의 모듈로 이동하십시오.
  • 경로 선택, 라디오 버튼 선택 (모듈 컴파일 출력 경로 사용)
  • 프로젝트 내부에 출력 경로 및 테스트 출력 경로 제공
  • 출력 경로 제외를 선택 취소하십시오.
  • File-> Invalidate Cache를 클릭하고 다시 시작하십시오.

1

내 경우에는 문제를 해결 build.gradle하고 변경 하여 해결했습니다.

dependencies {
    testImplementation 'junit:junit:4.12'
}

dependencies {
    testCompile 'junit:junit:4.12'
}

놀랍게도 이것은 나에게 도움이되었다. 도움없이 전에 여러 정리 / 캐시를 시도
Dieter Menne

가치가있는 것에 대해, 나에게 대한 문제는 위에서 제안한 솔루션처럼 수정되었습니다. 그러나 그 이유는 '구현'명령을 지원하지 않는 플러그인을 사용했기 때문입니다. 따라서 프로젝트 플러그인 중 일부에 업데이트가 있는지 확인하고 싶을 수도 있습니다. Gradle을가 "컴파일"명령을 지양하고 싶어하기 때문에 아마도 더 좋은 방법은 플러그인을 업데이트하는 것입니다
bremen_matt

1

나는 모든 해결책을 시도했지만 그중 아무것도 도움이되지 못했습니다. 결국 나는 디버그 모드에서 테스트를 실행하고 .... 작동하기 시작했다. 어쩌면 일부 메이븐 캐시가 정리되었을 수 있습니다. 말하기 어렵다. 효과가있다. 시험mvn test -X


1

프로젝트 창에서 파일을 마우스 오른쪽 버튼으로 클릭하고

" You YourTest "를 실행하십시오 .

결함이있는 실행 구성이 새로 빌드되고 있기 때문에 모든 것이 이제 막 시작됩니다.


1

새 버전의 IntelliJ를 설치 한 후 IntelliJ 플러그인이 아직 업데이트되지 않은 경우 (적어도 한 번은;) 발생할 수 있습니다.

Check for updates…IntelliJ 도움말 메뉴에서 수동으로 수행해야 할 수도 있습니다 .


1

Maven 프로젝트 구조 src / main / java에서 java 디렉토리를 마우스 오른쪽 버튼으로 클릭하고 디렉토리 표시 옵션-> 소스 루트를 선택하십시오.

src / test / java는 java 디렉토리를 마우스 오른쪽 버튼으로 클릭하고 Mark directory as-> Test Sources Root 옵션을 선택하십시오.

나를 위해 일했다 :-)


1

Intellij에서 아래 단계를 따르십시오 (더 나은 이해를 위해 스크린 샷 포함).

  1. 파일-> 프로젝트 구조로 이동하십시오.

여기에 이미지 설명을 입력하십시오

  1. 모듈로 이동하여 Junit 테스트 파일이있는 모듈을 선택하고 "모듈 컴파일 출력 경로 사용"단일 선택 단추를 선택하십시오.

  2. 첨부 된 스크린 샷과 비슷한 각 클래스 폴더 경로를 언급하십시오.

여기에 이미지 설명을 입력하십시오

  1. 신청하고 좋아요. 이것은 나를 위해 일했다!

0

여기에서 IDEA 15.0.6을 사용하는 것과 동일한 문제가 발생했으며 테스트 클래스가 있던 패키지의 이름을 바꿀 때를 제외하고는 아무런 도움이되지 않았습니다. 나중에 원래 이름으로 이름을 바꾸고 여전히 작동하므로 이름 바꾸기 작업으로 인해 일부 캐시가 지워졌을 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.