From bbeae5cd2e23aa9dde9d17297e0b2ef74a09aa85 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Tue, 2 Dec 2014 21:46:33 +0100 Subject: [PATCH] report test execution statistics as teamcity service messages --- .../testFramework/LightPlatformTestCase.java | 14 ++++++++++---- .../com/intellij/testFramework/UsefulTestCase.java | 2 ++ 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/platform/testFramework/src/com/intellij/testFramework/LightPlatformTestCase.java b/platform/testFramework/src/com/intellij/testFramework/LightPlatformTestCase.java index 906369a97206..fcc8a89d11bd 100644 --- a/platform/testFramework/src/com/intellij/testFramework/LightPlatformTestCase.java +++ b/platform/testFramework/src/com/intellij/testFramework/LightPlatformTestCase.java @@ -186,15 +186,21 @@ public abstract class LightPlatformTestCase extends UsefulTestCase implements Da return ourApplication; } + @SuppressWarnings("UseOfSystemOutOrSystemErr") public static void reportTestExecutionStatistics() { System.out.println("----- TEST STATISTICS -----"); UsefulTestCase.logSetupTeardownCosts(); - System.out.println(String.format("Application reinitializations: %d", MockApplication.INSTANCES_CREATED)); - System.out.println(String.format("Test projects opened: %d", ProjectManagerImpl.TEST_PROJECTS_CREATED)); + System.out.println(String.format("##teamcity[buildStatisticValue key='ideaTests.appInstancesCreated' value='%d']", + MockApplication.INSTANCES_CREATED)); + System.out.println(String.format("##teamcity[buildStatisticValue key='ideaTests.projectInstancesCreated' value='%d']", + ProjectManagerImpl.TEST_PROJECTS_CREATED)); + long totalGcTime = 0; for (GarbageCollectorMXBean mxBean : ManagementFactory.getGarbageCollectorMXBeans()) { - System.out.println(String.format("Garbage collection in memory pool %s: %d ms", mxBean.getName(), mxBean.getCollectionTime())); + totalGcTime += mxBean.getCollectionTime(); } - System.out.println(String.format("Total classes loaded: %d", ManagementFactory.getClassLoadingMXBean().getTotalLoadedClassCount())); + System.out.println(String.format("##teamcity[buildStatisticValue key='ideaTests.gcTimeMs' value='%d']", totalGcTime)); + System.out.println(String.format("##teamcity[buildStatisticValue key='ideaTests.classesLoaded' value='%d']", + ManagementFactory.getClassLoadingMXBean().getTotalLoadedClassCount())); } protected void resetAllFields() { diff --git a/platform/testFramework/src/com/intellij/testFramework/UsefulTestCase.java b/platform/testFramework/src/com/intellij/testFramework/UsefulTestCase.java index 4cc7e013fabb..fae50fd1acbb 100644 --- a/platform/testFramework/src/com/intellij/testFramework/UsefulTestCase.java +++ b/platform/testFramework/src/com/intellij/testFramework/UsefulTestCase.java @@ -387,6 +387,8 @@ public abstract class UsefulTestCase extends TestCase { totalTeardown += entry.getValue(); } System.out.println(String.format("Total overhead: setup %d ms, teardown %d ms", totalSetup, totalTeardown)); + System.out.println(String.format("##teamcity[buildStatisticValue key='ideaTests.totalSetupMs' value='%d']", totalSetup)); + System.out.println(String.format("##teamcity[buildStatisticValue key='ideaTests.totalTeardownMs' value='%d']", totalTeardown)); } public static void replaceIdeEventQueueSafely() {