TDD의 맹신자는 아니지만 보통 개발을 진행할 때 테스트 케이스를 먼저 만들면서 코딩하느라 디버깅을 테스트 케이스로 많이 하는 편인데 Gradle test 태스크는 기본적으로 console 로깅이 disable된 채로 구동된다.

개발시에는 stacktrace를 상세하게 볼 필요도 있는데 아래 설정을 통해 볼 수 있다.

Gradle reference는 잘되어 있는 듯 잘 안되어 있는(?) 뭔가 하나씩 빠져 있는 느낌이랄까..

기본값이 어떤값으로 되어 있다던지 어떤 값이 적절하게 들어가는지 상세하게 안나와 있는 경우가 좀 있는 편인거 같다.

Test task 로깅 설정

test {  
    testLogging {
        // test jvm의 standard out and standard error을 console에 출력한다.
        showStandardStreams = true
        showCauses = true
        showExceptions = true
        showStackTraces = true
        exceptionFormat = 'full'
    }
}

참고 TestLogging Property

Property Description
displayGranularity 로그로 기록되는 이벤트의 표시 단위.
"0"으로 세팅할 때 메소드 단위 이벤트는 "Test Run > Test Worker x > org.SomeClass > org.someMethod"로 표시된다.
"2"로 세팅하면 같은 이벤트는 "org.someClass > org.someMethod"로 표시된다.
events 로깅될 이벤트.
TestLogEvent (FAILED, PASSED, SKIPPED, STANDARD_ERROR, STANDARD_OUT, STARTED)
exceptionFormat showStackTrace가 true 여야만 활성화
로깅하려는 test exception 포맷
TestExceptionFormat(FULL, SHORT)
maxGranularity 로깅되는 이벤트 표시방식(max)
"0" test를 수행하는 gradle test suite 전체
"1" test가 수행되는 각 test JVM 정보
"2" 테스트 클래스
"3" 테스트 메소드.
minGranularity maxGranularity 와 동일
showCauses showException가 true여야만 활성화
테스트 수행 시 exception이 발생 했을 때 causes 정보를 보여준다.
showExceptions 테스트 수행 시 exception이 발생 했을 때 exception정보를 로깅한다. 보통 "Failed" 이벤트 발생 시 수행한다.
showStackTraces 테스트 수행 시 exception이 발생 했을 때 showStackTraces정보를 보여준다.
showStandardStreams standard out, standard error 를 로깅한다.
stackTraceFilters test stack trace 정보를 filter를 통해 정제한다.
TestStackTraceFilter를 사용

Reference

https://docs.gradle.org/current/dsl/org.gradle.api.tasks.testing.logging.TestLogging.html

Older Post

SI프로젝트 빅뱅 오픈 왜 이렇게 항상 힘드나

Newer Post

Slack Subversion Intergration 한글 코멘트 사용하기