Çok modüllü bir Maven yapısında en yavaş JUnit testlerini nasıl listeleyebilirim?Çok modüllü bir Maven yapısında en yavaş JUnit testlerinin listesi
Bu, tüm modüllerin karşısında olmalıdır. Bir Hudson/Jenkins çözümü de yapabilirdi.
Çok modüllü bir Maven yapısında en yavaş JUnit testlerini nasıl listeleyebilirim?Çok modüllü bir Maven yapısında en yavaş JUnit testlerinin listesi
Bu, tüm modüllerin karşısında olmalıdır. Bir Hudson/Jenkins çözümü de yapabilirdi.
Yasal Uyarı: Çalışır ve tek satırda uymasına rağmen, gerçekten benim bash çözümüm için özür dilerim :-). Sabırsızsanız, dibe geçin.
Öncelikle maven-surefire-plugin
tarafından üretilen tüm TEST-*.xml
dosyalarını bulmamız gerekiyor.
$ find . -iname "TEST-*.xml"
Neyse bu dosyaların formatı oldukça basittir, basit
grep
ve biz ne gerek var: tüm submodules içinde test sonuçlarını keşfetmeye projenizin kök dizininde
mvn test
sonra bu çalıştırın
$ grep -h "<testcase" `find . -iname "TEST-*.xml"`
Şimdi bazı çağırma zamanı, test durumu sınıf ve yöntem adı ayıklamak için sed
sihirli: Orada
$ sed 's/<testcase time="\(.*\)" classname="\(.*\)" name="\(.*\)".*/\1\t\2.\3/'
Birşey daha uzun soluklu testleri sonucu sıralamak ve görüntülemek için sadece sol:
$ grep -h "<testcase" `find . -iname "TEST-*.xml"` | sed 's/<testcase time="\(.*\)" classname="\(.*\)" name="\(.*\)".*/\1\t\2.\3/' | sort -rn | head
Şaşırtıcı sonuçlar makul (activiti 5.1 çoklu modül kodunu bak:
$ 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
Harika! İşe yarıyor! –
Benim durumumda, 'time' ve' name' öznitelikleri ters çevrildi. Tek liner: 'grep -h"
Rolf
Cevaplar için teşekkürler, bu tür bilgileri nerede arayacağımı söyleyin. Benim için olsa da, bir liner saati listelemedi, bu benim için çalıştı: grep -h " 30 '| sort -g -k3 -r | 30 saniyeden uzun süren test vakaları için -100 –