IntelliJ에서 Maven 테스트 목표를 어떻게 디버깅합니까?


82

intellij 및 maven pom 파일을 사용하여 Maven 테스트 목표 내에서 테스트를 디버그하려면 어떻게해야합니까?

코드에서 직접 실행하면 프로파일 누락에 대한 불만이 있습니다. 인텔 리즈의 Maven 프로젝트에서 확인했습니다.

답변:


25

목표를 마우스 오른쪽 버튼으로 클릭하고 "[목표] 디버그"(귀하의 경우 테스트 목표)는 어떻습니까?

디버그 목표


Ahh는 그것을 생각하지 않았습니다. 금요일 오후에 너무 늦었습니다 : D 감사합니다.
JavaRocky

23
중단 점을 사용한다고 가정하면이 대답은 충분하지 않습니다. 대신 Hover의 답변을 참조하십시오.
David Groomes 2014-08-20

182

http://maven.apache.org/plugins/maven-surefire-plugin/examples/debugging.html

IDEA에서 디버그 모드 " mvn -DforkMode=never test" 에서 테스트를 실행하십시오.

업데이트 됨 : "Runner"탭에서 실행 / 디버그 구성을 열고-DforkMode=never

여기에 이미지 설명 입력

(@ mikeapr4 참고 : 최신 버전의 surefire 플러그인 (2.14+) 사용 mvn -DforkCount=0 test)


그것은 나를 위해 일했습니다. 다음 명령을 사용하여 Idea 10의 테스트 목표를 디버깅하고 있습니다.
Swapnonil Mukherjee 2011

1
내 다중 모듈 프로젝트에서 이것은 Intellij 내에서 나를 위해 일한 유일한 옵션이었습니다.
nash

24
IDEA 11을 사용하면 Maven 프로젝트에서 테스트하려는 모듈의 테스트를 마우스 오른쪽 버튼으로 클릭해야했습니다. 이로 인해 실행 / 디버그 구성이 생성되었습니다. 그런 다음이 새 구성을 편집하고 실행기 탭을 클릭 한 다음 VM 옵션에서 -DforkMode = never를 추가합니다. 확인을 클릭하십시오. 중단 점을 설정 한 다음 디버그 아이콘을 클릭하여 새 디버그 구성을 실행합니다. 위의 조합이므로 팁에 감사드립니다.
foolshat

@MarkM 중단 점은이 접근 방식을 사용하는 나를 위해 IJ13에서 존중되지 않습니다.
StephenBoesch 2014

9
최신 버전의 확실한 플러그인 (2.14+) use를 주목할 가치가 있습니다 mvn -DforkCount=0 test. 이것은 다른 (혼란스러운) 답변에서 아래에 언급되어 있지만 놓칠 수 있습니다.
mikeapr4 2015-08-03

28

다음 옵션으로 테스트를 실행합니다.

mvn -Dmaven.surefire.debug="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=6666 -Xnoagent -Djava.compiler=NONE" test

... 원격 디버거를 사용하여 Maven에 연결합니다.


log4j / logging이 작동하도록 관리 했습니까? -Dlog4j.configuration = <path to log4j.properties>도 포함했지만 로깅 문이 인쇄되지 않습니다.
StephenBoesch 2014

18

-DforkMode=never 더 이상 작동하지 않으며 이제 SureFire에서 더 이상 사용되지 않습니다.

-DforkCount=0surefire 플러그인 2.14 이상을 사용할 때 대신 사용하십시오 .


1
확실한 워드 프로세서가 사용하는 말을 forkCount하고 reuseForks나는 위의 말을 의미 한 생각, 그래서 대신에 "사용을 -DforkCount=0대신." 나는 시도했지만 -DforkCount=0( reuseForks포크가 없어도 상관 없습니다) 내 중단 점은 결코 트립되지 않았습니다. -DforkMode=never(Maven 3.2.1, IDEA 13.1.2) 와 함께 트립됩니다 .
mmindenhall

9

질문에 대한 답변이 완료되었습니다. 하지만 내 경험을 공유하기 위해서입니다. 선택한 답변으로 문제가 해결되지 않았습니다. 내 코드에는 여러 모듈이 있습니다.

foolshat의 답변은 내 문제에 대한 귀중한 통찰력을 가져 왔습니다.

두 가지 솔루션이 있습니다. 1. IDEA를 사용하여 VM 옵션 을 추가합니다 -DforkMode=never. 디버그 모드로 실행해야합니다. 2. 소켓을 지정하여 원격 디버깅을 설정합니다. 이 경우에는 forkMode가 필요하지 않습니다.

내가 겪은 일에 대한 요약 일뿐입니다.


1

Colin Hebert의 솔루션은 나에게도 효과가 없습니다. 하지만 다행히 테스트 방법 옆에 나타나는 녹색 삼각형을 마우스 오른쪽 버튼으로 클릭하여 테스트를 디버그하는 쉬운 방법을 찾았습니다.

자바 테스트 클래스 예

도움이 되었기를 바랍니다.


1
해당 클래스의 코드를 게시하고 이미지를 사용하지 마십시오.
상식

1
이 의견에 기여한 것은 IntelliJ에서 창을 열어 디버그하는 방법입니다. 수업 코드는 중요하지 않습니다.
David DRM
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.