2016-12-09 3 views
2

현재 4GB RAM이있는 32 비트 Windows 시스템에서 약 100,000 개의 테스트를 실행하려고합니다. -usedefaultlisteners false 명령으로 기본 리스너를 비활성화했으며 사용자 정의 리스너/리포터를 구성하지 않았습니다. 그러나, 스위트는 다음과 같은 스택 트레이스와 함께 실패합니다TestNG 수신기/리포터를 사용하지 않아도 OutOfMemoryError가 발생했습니다.

Exception in thread "pool-2-thread-5" Exception in thread "pool-2-thread-7" java.lang.OutOfMemoryError: Java heap space 
java.lang.OutOfMemoryError: Java heap space 
Exception in thread "pool-2-thread-2" java.lang.OutOfMemoryError: Java heap space 
Exception in thread "pool-2-thread-6" java.lang.OutOfMemoryError: Java heap space 
Exception in thread "pool-2-thread-4" java.lang.OutOfMemoryError: Java heap space 
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space 

심지어 청취자없이, TestNG를 구성 4GB의 RAM 이상을 필요로 할 수 있습니까?

어떤 프로세스에서 많은 메모리가 필요합니까?

이러한 테스트를 실행할 수있는 최적화/해결 방법이 있습니까?

+1

'target/surefire-reports' 안에 생성 된 확실한 보고서를 살펴보면 전체 스택 트레이스를 갖게됩니다. – Tunaki

+0

'평행'으로 테스트를 실행하고 있습니까? 그렇다면'testng.xml'에서 어떤 종류의 병렬 처리를 설정 했습니까? – nullpointer

+0

내 testng.xml에'parallel' 설정을 사용하고 있지 않지만 threadPoolSize 속성을 사용하여 15 개의 스레드로 실행되도록 일부 테스트를 구성했습니다. – ejang

답변

1

하드웨어에 4GB RAM이 있다는 사실은 JVM 힙에 모두 사용된다는 것을 의미하지는 않습니다. 힙 크기는 매개 변수 -Xmx에 의해 정의 된 최대 값을가집니다. 귀하의 경우에는

사용할 수와 4GB,이 옵션을 사용하여 테스트를 실행하려고 할 것이다 : 이것은 힙 최대 2GB까지 수

java -Xmx2g mytest 

.