Junit 단위 테스트 용 JVM 매개 변수를 설정하는 방법은 무엇입니까?
실행하는 데 많은 양의 힙 공간이 필요한 Junit 단위 테스트 (예 : 1G)가 있습니다. (충분한 힙 공간으로 만 실행되고 Win 7 64 비트 컴퓨터에서 내부적으로 실행되는 웹 스타트 앱의 테스트 메모리 테스트를 재 설계하는 것은 실용적인 제안이 아닙니다.)
Intellij IDEA에서 개발 중 테스트 클래스에 대해 JVM 변수 (예 : -Xmx1024M)를 사용하는 것을 알고 있습니다. 그러나 이것은 전체 테스트 클래스를 실행하기위한 것입니다. 어느 쪽이든 실행 가능한 구성을 다시 테스트합니다.
또한 존재하는 IDE 및 상자별로 다르거 나 상자를 전환하거나 (컴퓨터에서 개발) 동료 중 한 명이 전송하지 않는 것이 전송되지 않습니다. (또한 Eclipse 및 NetBeans와 같은 다른 IDE는 동료들이 사용합니다.) FWIW, 소스 코드 제어를 위해 mercurial을 사용하고 있습니다.
빌드주기의 경우 Maven을 사용하여 이에 대한 JVM 매개 변수를 지정하는 방법을 알고 있습니다.
그래서 :-전체 테스트 클래스와 식별 테스트 방법에 적용 할 JVM 변수를 지정하는 방법을 찾고 있습니다. 그리고 모든 컴퓨터의 IDE에서 필요한 사양을 공유하고 싶습니다 (저장소에서 코드를 가져옴).
IntelliJ에서는 각 실행 구성에 대한 기본 설정을 실행 가능합니다. 에서 실행 / 디버그 구성 대화 상자 (당신이 테스트 당 구성 힙을 사용하는 한) 클릭 및 JUnit을 . 설치 설정은 새로운 JUnit 테스트 구성에 자동으로 적용됩니다. Eclipse에도 기재 설정이 존재한다고 생각합니다.
그러나 그러나 설정은 (적어도 IntelliJ에서는)을 환경간에 전송하는 간단한 옵션이 없습니다. IntelliJ 프로젝트 파일을 저장소에 커밋 할 수 있습니다. 작동 할 수도 있습니다.
에 대해 설정하는 방법을 알고 maven-surefire-plugin
있습니다. 좋아요. 이것은 가장 이식 가능한 방법입니다 (예는 Ptomli의 답변 참조).
나머지는 JUnit 테스트 케이스가 독립형 프로그램이 아니라 Java 클래스의 집합이라는 것을 기억해야합니다. maven-surefire-plugin
옵션을 설정하는 것은 실행자에게 달려 있습니다 (독립형 JUnit 실행기, IDE가 변경하세요 . 즉, 실행자에 관계없이 메모리 설정이 적용 가능한 설정하는 "휴대용"방법이 없습니다.
예를 들어 Xmx
, 서블릿을 개발할 때 매개 변수를 정의 할 수 없습니다 . "이 서블릿은 항상 Xmx=1G
.
Maven에서는 확실하게 플러그인을 구성 할 수 있습니다.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.9</version>
<configuration>
<argLine>-Xmx256M</argLine>
</configuration>
</plugin>
빌드에 Maven을 사용하는 경우 구성은 소스 트리에서 수행되고 테스트가 수행 될 때 적용됩니다. Maven Surefire 문서를 참조하세요 .
변수를 즉석에서 접근 할 수 있습니다.
mvn test -DargLine="-Dsystem.test.property=test"
참조 http://www.cowtowncoder.com/blog/archives/2010/04/entry_385.html를
나는 설정을 배포하는 간단한 방법이 다른 사람들의 의견에 동의합니다.
Eclipse의 경우 : 동료에게 다음을 설정하도록 요청하십시오.
- Windows 기본 설정 / Java / 강력 JRE :
- 적절한 JRE / JDK를 선택하십시오 (또는 수행하십시오).
- 편집하다
- 기본 VM 인수 :
-Xmx1024m
- 끝내세요.
그 후 모든 테스트가 실행 -Xmx1024m
듣게 히도 모든 Eclipse 설치에서 설정했습니다. 이 설정을 포함하는 사용자 정의 Eclipse 패키지를 만들어 동료에게 제공 할 수 있습니다.
다음 작업 프로세스도 도움이 될 수 있습니다. IDE가 테스트를 수없는 경우 개발자는 Maven이 테스트를 확인해야합니다.
- 메이븐 이 실행할 수 난 웬지 - 일반적으로 실패의 원인은 개발자의 IDE 설정입니다. 개발자는 설치 설정을 확인해야합니다.
- 메이븐도 계명 테스트를 실행할 수없는 경우 개발자는 실패의 원인이 IDE가 아니라는 것을 알고 있으므로 IDE를 사용하여 테스트를 디버깅 할 수 있습니다 .
이 지원 질문에 따르면 https://intellij-support.jetbrains.com/hc/en-us/community/posts/206165789-JUnit-default-heap-size-overridden-
IntelliJ junit 테스트 실행을위한 -Xmx 인수는 하나의 경우 maven-surefire-plugin에서 제공됩니다.
이 pom.xml 스 니펫
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<argLine>-Xmx1024m</argLine>
</configuration>
</plugin>
IntelliJ 2016.2.4에서 junit 테스트 실행에 -Xmx1024 인수를 전달하는 것입니다.
systemPropertyVariables를 사용할 수 있습니다 (java.protocol.handler.pkgs는 JVM 인수 이름입니다).
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12.4</version>
<configuration>
<systemPropertyVariables>
<java.protocol.handler.pkgs>com.zunix.base</java.protocol.handler.pkgs>
<log4j.configuration>log4j-core.properties</log4j.configuration>
</systemPropertyVariables>
</configuration>
</plugin>
http://maven.apache.org/surefire/maven-surefire-plugin/examples/system-properties.html
java.library.path JVM 매개 변수로 제한된 Eclipse 특정 대안을 사용하면 다른 응답에서 제안한대로 전체 jdk가 아닌 특정 소스 폴더에 대해 설정할 수 있습니다.
- 시작할 프로그램이있는 소스 폴더를 선택합니다 (일반적으로 source / test / java).
- 해당 폴더의 속성 페이지를 열려면 alt Enter를 입력하십시오.
- 왼쪽 패널에서 네이티브 선택
- 기본 경로를 편집하십시오. 경로는 작업 공간에 대해 절대적이거나 상대적 일 수 있으며, 두 번째 경로는 더 탄력적 인 변경입니다.
maven argline 태그가 systemProperties 1보다 선호되어야하는 이유에 대한 세부 사항에 관심이있는 사람들은 다음을보십시오.
Maven 테스트 (lwjgl)에서 네이티브 JNI 파일 선택
참고 URL : https://stackoverflow.com/questions/7579776/how-to-set-jvm-parameters-for-junit-unit-tests
'IT' 카테고리의 다른 글
window.location.assign ()과 window.location.replace ()의 차이점 (0) | 2020.09.05 |
---|---|
CSS 나는 div가 모든 것 위에 있기를 원합니다. (0) | 2020.09.05 |
그래프 검색과 트리 검색의 차이점은 무엇입니까? (0) | 2020.09.05 |
Java 한 번에 (또는 가장 쉬운 방법으로) 여러 개의 여러 개의 하위 계층 (0) | 2020.09.05 |
패키지 복원을 사용할 때 .nuget 폴더의 nuget.exe를 자동으로 업데이트하는 방법이? (0) | 2020.09.05 |