2011-02-23 3 views

답변

22

면책 조항 : 작동하고 하나의 줄이 맞지만 내 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 

+1

좋은 물건! 그것은 작동합니다! –

+3

필자의 경우'time'과'name' 속성이 반대로되어 있습니다. 하나의 라이너는 다음과 같이됩니다 : 'grep -h " Rolf

+0

답변 해 주셔서 감사합니다. 나를 위해, 한 라이너 시간을 나열하지 않았다,이 나를 위해 일했다 : grep -h " 30 '| 정렬 -g -k3 -r | 30 초 이상 걸리는 테스트 케이스의 경우 head -n100 –

관련 문제