여러 모듈에서 IntelliJ IDEA에서 단위 테스트를 함께 실행


85

두 개 이상의 IDEA 모듈에서 모든 테스트를 한 번에 실행하려면 어떻게해야합니까?

많은 모듈을 사용하고 있으며 모든 단위 테스트를 자주 실행하는 것이 중요하며 실행할 폴더를 두 개 이상 선택하면 컨텍스트 메뉴에 더 이상 '실행'옵션이 없습니다.

답변:


113

가장 좋은 방법 : (3 년 후 편집)

이를 달성하는 더 좋은 방법이 있습니다.

  1. 메뉴 "실행"→ "구성 편집 ..."을 선택합니다. 왼쪽 상단 모서리에있는 녹색 더하기를 클릭하고 JUnit을 선택합니다.

  2. "패턴"에서 "테스트 종류"를 선택하고 보이는대로 정확히이 정규식을 입력합니다 ^(?!.*IT$).*$(캐럿으로 시작 ^하고 달러로 끝남 $). 이 정규 표현식은 다음과 같이 말합니다. 이름에 IT로 끝나지 않는 모든 테스트 .

  3. "전체 프로젝트에서"로 "테스트 검색"을 선택합니다. 작업 디렉토리는 최상위 모듈 작업 디렉토리로 설정되어야합니다 (기본적으로 설정되어야 함).

  4. "모든 단위 테스트"와 같은 테스트 이름을 입력합니다. 또한이 구성이 나중에 사라지지 않도록 "공유"옵션을 표시하는 것을 선호합니다. 적용 및 확인을 클릭하십시오.

이 정규식을 사용하여 필요에 맞게 실험 할 수 있습니다.

원래 답변 :

편안하지는 않지만 가능합니다.

  1. 첫 번째 모듈을 선택하고 test/java디렉토리를 마우스 오른쪽 버튼으로 클릭 한 다음 "모든 테스트 실행"을 선택합니다. 테스트 구성을 생성합니다.
  2. "구성 편집"을 선택하고 새로 생성 된 구성에서 "공유"를 선택하여 저장합니다.
  3. 두 번째 모듈 인 "Run All Tests"를 선택하고이 구성에서도 "Share"를 선택합니다.
  4. "시작 전"섹션에서 "+"를 클릭하고 "다른 구성 실행"을 선택한 다음 첫 번째 모듈의 구성을 선택합니다.

이렇게하면 구성을 순서대로 실행하고 모든 구성에 새 탭이 생깁니다. 여전히 아무것도없는 것보다 낫습니다.


감사! 가장 깨끗한 방법입니다. : 삼년 후이를 달성하기 위해 더 나은 방법이 있는지 궁금
CoderSpinoza

감사! 당신은 내 시간을 절약했고 이것은 지금까지 내가 찾을 수있는 가장 영리한 방법으로 여러 커버리지 보고서 생성과 통합 케이스 러너 문제 를 한 번에 해결할 수 있습니다 .
Fei

난 그냥 더 나은 솔루션 @CoderSpinoza 내 답변을 편집 한
토마스 Kalkosiński을

10
테스트 케이스가 런타임 중에 모듈 별 리소스를 사용하는 경우 업데이트 된 버전은 좋지 않습니다. 저는 여전히 원래 솔루션을 선호합니다.
Fei

내 Gradle 종속성을 존중하기 위해이 구성을 얻으려면 어떻게해야합니까? 이제 Guava에서 누락 된 클래스에서 실패합니다. 단일 모듈의 테스트를 실행할 때 제대로 작동합니다.
Jorn

22

"실행 구성"을 만들어야합니다.

  1. "Make"버튼의 오른쪽 상단에있는 드롭 다운으로 이동하여 클릭합니다.
  2. "구성 편집"을 선택합니다.
  3. 이제 "+"버튼을 클릭하여 새 실행 구성을 추가하고 JUnit을 선택하십시오.
  4. 그런 다음 "구성 실행"을 구성 할 때 "테스트 종류"드롭 다운을 찾아 "디렉터리의 모든 클래스"를 선택합니다.
  5. 루트로 사용할 디렉토리를 선택하고 프로젝트의 최상위 디렉토리 또는 모듈의 디렉토리를 선택할 수 있습니다.
  6. 클래스 경로를 선택하는 IntelliJ 모듈을 선택합니다 (클래스 경로가있는 경우 최상위 프로젝트가 될 수 있음).

문제가 해결되지는 않지만 팁을 주셔서 감사합니다. 완벽한 방법은 하나가 아닌 여러 개의 디렉토리를 선택하는 것입니다. pertial 솔루션은 여전히 패키지가 아닌 DIRS ... 수도에만 패턴 사용 패턴에, 그러나
보이 테크 Erbetowski

15
"Test Kind"에서 "All in package"를 선택한 다음 "In whole project"확인란을 선택합니다. 그러면 모든 모듈에서 테스트가 실행됩니다.
Martin Odhelius 2013 년

5
각 모듈이 작업 디렉토리로 자체 모듈 디렉토리로 실행되기를 바랍니다. 불가능한 것 같습니다. 전체에 대해 단일 모듈 디렉토리를 사용하는 것 같습니다.
bacar 2014 년

@MartinOdhelius는 지금까지 가장 깨끗한 솔루션입니다
Hemil

10

모든 모듈을 선택하고 마우스 오른쪽 단추로 클릭 한 다음 모든 테스트를 실행하도록 선택하십시오. 이렇게하면 언제든지 다시 실행할 수있는 "전체 프로젝트" 라는 구성이 생성 됩니다.

이것은 각 모듈에 대해 개별적으로 단위 테스트를 실행하기 때문에 허용되는 답변보다 더 낫다는 것을 알았습니다. 테스트 케이스가 런타임 중에 모듈 별 리소스를 사용하는 경우 허용되는 답변의 가장 좋은 방법은 작동하지 않습니다.

모든 모듈 선택

모든 모듈 선택

마우스 오른쪽 버튼을 클릭하고 모든 테스트를 실행하도록 선택하십시오.

마우스 오른쪽 버튼을 클릭하고 모든 테스트를 실행하도록 선택하십시오.

새 실행 구성 가져 오기

새 실행 구성 가져 오기


첫 번째 단계에서 둘 이상의 모듈을 선택하는 것으로 충분합니다.
user7610

2
제 생각에는 이것이 받아 들여진 대답이어야합니다. 내가 가진 유일한 예약은 "가장 쉬움"이라는 용어를 사용하는 것입니다. 안타깝게도 Intellij로 구성을 실행하는 것은 쉬운 일이 아닙니다. 구성으로 간단한 작업을 수행하는 방법에는 여러 가지가 있으며 일반적으로 작동하는 경우 하나만 수행합니다. 따라서 귀하의 작업은 종종 작동하는 옵션을 검색하는 모든 다른 옵션을 반복하는 것입니다. 전혀 쉽지 않습니다.
David Sackstein

이것은 모듈의 작은 부분을 선택하더라도 프로젝트 (전체 프로젝트)의 모든 테스트를 실행 합니다. 이것은 내가 원하는 것이 아닙니다. 필자의 경우 테스트를 실행하려는 모든 모듈이 공통 패키지를 공유하므로 결과 '전체 프로젝트'구성을 편집하고 모듈 하위 집합에 대해서만 테스트를 실행하도록 필터링하는 패키지를 추가 할 수 있습니다.
Albert Vila Calvo

5

나를 위해 두 솔루션 모두 작동하지 않거나 예상대로 작동하지 않았습니다.

저에게는 3 개의 모듈이 있습니다. 내 모듈 종속성은 다음과 같습니다.

프레젠테이션 -> 도메인 -> 데이터

모든 테스트를 함께 실행하고 싶었습니다. 그래서 '모듈 의존성'접근 방식을 생각해 냈습니다.

내 설정은 다음과 같습니다.

여기에 이미지 설명 입력


2

이것은 여러 모듈이있는 프로젝트에서 저에게 효과적이었습니다.

새 JUnit 실행 / 디버그 구성을 만듭니다. 테스트 종류 : 'All in package'테스트 검색 : '전체 프로젝트'

작업 디렉토리도 지정해야합니다.


그게 내가 끝낸 일이기도하다.
miva2

1

그다지 분명하지 않은 또 다른 경우는 하나 이상의 프로젝트에서 코드 커버리지가 필요한 경우입니다. 순진한 해결책은 여러 프로젝트를 선택하고 한 번에 모든 단위 테스트를 실행하는 것입니다. 결과적으로 클래스 경로가 변경되고 IntelliJ에 실행 구성 당 정확히 하나의 클래스 경로 항목이있는 경우 단위 테스트가 실패 할 수 있습니다. 이 경우 실제로 프로젝트에서 단위 테스트를 순차적으로 실행하는 것으로 충분합니다. 각 실행이 끝날 때 IntelliJ (2017.2.5 Community Edition)는 수집 된 커버리지가 이전에 수집 된 커버리지 통계를 대체해야하는지 또는 추가되어야하는지 묻기 때문입니다.

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