[Elasticsearch] ElasticsearchIntegrationTest 삽질 공유.
Elastic/Elasticsearch 2014. 11. 19. 13:56이게 참 그냥 되야 하는 건데 eclipse 설정 환경에 따라 안될 수도 있으니 저 처럼 삽질 하시는 분들이 없도록 공유해 보겠습니다.
여기서 가장 중요한건 에러 메시지에 대한 인지를 얼마나 잘해서 문제를 해결 할수 있도록 접근하느냐 인것 같습니다.
[Elasticsearch 1.4.0]
Step 1) test class 중 아무거나 하나 실행
아래 에러 메시지 출력
Assertions mismatch: -ea was not specified but -Dtests.asserts=true
[2014-11-19 13:05:15,135][ERROR][org.elasticsearch.test ] FAILURE : org.elasticsearch.action.OriginalIndicesTests
REPRODUCE WITH : mvn clean test -Dtests.seed=F00EC17F5FF1D602 -Dtests.class=org.elasticsearch.action.OriginalIndicesTests -Dtests.prefix=tests -Dfile.encoding=UTF-8 -Duser.timezone=Asia/Seoul -Dtests.processors=8
Throwable:
java.lang.Exception: Assertions mismatch: -ea was not specified but -Dtests.asserts=true
__randomizedtesting.SeedInfo.seed([F00EC17F5FF1D602]:0)
org.apache.lucene.util.TestRuleAssertionsRequired$1.evaluate(TestRuleAssertionsRequired.java:48)
org.apache.lucene.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:48)
org.apache.lucene.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:65)
org.apache.lucene.util.TestRuleIgnoreTestSuites$1.evaluate(TestRuleIgnoreTestSuites.java:55)
[...com.carrotsearch.randomizedtesting.*]
java.lang.Thread.run(Thread.java:745)
여기서 핵심은 assertion mismatch 부분 입니다.
딱 봐도 거긴데요.
구글링을 어떻게 하느냐에 따라서 삽질이 될 수도 안될 수도 있습니다. ㅡㅡ;
(참고로 저는 ElasticsearchIntegrationTest error or issue or problem + assertions mismatch + randomizedtesing .,..)
Step 2) REPRODUCE WITH 를 가지고 console 에서 실행.
매우 잘 동작 합니다. ㅡ.ㅡ;;
그래서 멘붕..
Step 3) junit run configure 에 VM 옵션 추가 테스트
아래와 같이 추가 해 봄
-Dtests.asserts=true
젠장 역시 안됨.
Step 4) 루씬 소스코드도 까보고 이것 저것 삽질 끝에 구글링을 재시도
아래는 재시도 질의
eclipse junit assert enable
Step 5) 두 가지 방법으로 test 성공
1. eclipse preference -> junit -> Add -ea checkbox enable.
2. 해당 test class -> run as -> run configure -> argementgs tab -> vm agrguments 에 -ea 옵션 추가.
이제 저 처럼 삽질 하지 마시고 편하게 es test 하세요.