10
다중 모듈 Maven 빌드에서 가장 느린 JUnit 테스트를 나열하려면 어떻게합니까?다중 모듈 Maven 빌드에서 가장 느린 JUnit 테스트를 나열하는 방법
모든 모듈에 걸쳐 있어야합니다.
Hudson/Jenkins 솔루션도 사용할 수 있습니다.
다중 모듈 Maven 빌드에서 가장 느린 JUnit 테스트를 나열하려면 어떻게합니까?다중 모듈 Maven 빌드에서 가장 느린 JUnit 테스트를 나열하는 방법
모든 모듈에 걸쳐 있어야합니다.
Hudson/Jenkins 솔루션도 사용할 수 있습니다.
면책 조항 : 작동하고 하나의 줄이 맞지만 내 bash 솔루션에 대해 정말 사과드립니다 .-). 참을성이 없다면 아래쪽으로 가십시오.
먼저 TEST-*.xml
파일을 모두 maven-surefire-plugin
에서 찾아야합니다.
$ find . -iname "TEST-*.xml"
다행히 이러한 파일의 형식은 매우 간단, 단순
grep
우리는 우리가 필요로하는 것을 가지고 : 모든 서브 모듈의 테스트 결과를 발견 프로젝트의 루트 디렉토리에
mvn test
후이 프로그램을 실행
$ grep -h "<testcase" `find . -iname "TEST-*.xml"`
이제 일부 호출 시간, 테스트 케이스 클래스와 메소드 이름을 추출하는 sed
마법 :이
$ sed 's/<testcase time="\(.*\)" classname="\(.*\)" name="\(.*\)".*/\1\t\2.\3/'
을 의 아무것도 더 긴 실행 테스트를 결과를 정렬하고 표시 만 남아 있지 :
$ grep -h "<testcase" `find . -iname "TEST-*.xml"` | sed 's/<testcase time="\(.*\)" classname="\(.*\)" name="\(.*\)".*/\1\t\2.\3/' | sort -rn | head
놀랍게도, 결과는 합리적인 (Activiti 5.1 멀티 모듈의 코드를 보면 :
$ sort -rn | head
3.029 org.activiti.examples.variables.jpa.JPAVariableTest.testStoreJPAEntityAsVariable
2.904 org.activiti.engine.test.forms.FormsTest.testTaskFormPropertyDefaultsAndFormRendering
1.594 org.activiti.engine.test.api.mgmt.ManagementServiceTest.testGetJobExceptionStacktrace
1.114 org.activiti.examples.variables.jpa.JPAVariableTest.testUpdateJPAEntityValues
1.006 org.activiti.engine.test.db.EngineRebootProcessDefinitionCacheTest.testStartProcessInstanceByIdAfterReboot
0 org.activiti.engine.test.pvm.PvmVariablesTest.testVariables
0 org.activiti.engine.test.pvm.PvmScopeWaitStateTest.testWaitStateScope
0 org.activiti.engine.test.pvm.PvmScopesAndConcurrencyTest.testConcurrentPathsGoingIntoScope
0 org.activiti.engine.test.pvm.PvmEventTest.testNestedActivitiesEventsOnTransitionEvents
0 org.activiti.engine.test.pvm.PvmEventTest.testEmbeddedSubProcessEvents
좋은 물건! 그것은 작동합니다! –
필자의 경우'time'과'name' 속성이 반대로되어 있습니다. 하나의 라이너는 다음과 같이됩니다 : 'grep -h "
Rolf
답변 해 주셔서 감사합니다. 나를 위해, 한 라이너 시간을 나열하지 않았다,이 나를 위해 일했다 : grep -h " 30 '| 정렬 -g -k3 -r | 30 초 이상 걸리는 테스트 케이스의 경우 head -n100 –