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.