From cb4a818388f5c4d73096af269368ff896efbf2cf Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Mon, 22 Jun 2020 20:27:26 +0200 Subject: [PATCH] junit/testng: skip empty lines (IDEA-216145/IDEA-218927) GitOrigin-RevId: 6bb7b004fa703ad1589dbe34cf91381c00b70f62 --- .../junit5/JUnit5TestExecutionListener.java | 8 +-- .../com/intellij/junit5/JUnit5EventsTest.java | 7 -- .../TestNGTreeHierarchyTest.java | 67 ------------------- .../rt/testng/IDEATestNGRemoteListener.java | 9 ++- 4 files changed, 8 insertions(+), 83 deletions(-) diff --git a/plugins/junit5_rt/src/com/intellij/junit5/JUnit5TestExecutionListener.java b/plugins/junit5_rt/src/com/intellij/junit5/JUnit5TestExecutionListener.java index e8a6ef710ddf..c8b037379cdb 100644 --- a/plugins/junit5_rt/src/com/intellij/junit5/JUnit5TestExecutionListener.java +++ b/plugins/junit5_rt/src/com/intellij/junit5/JUnit5TestExecutionListener.java @@ -205,7 +205,7 @@ public class JUnit5TestExecutionListener implements TestExecutionListener { "' nodeId='" + escapeName(getId(testIdentifier)) + "' parentNodeId='" + escapeName(parentId) + "' "; testFailure(CLASS_CONFIGURATION, getId(testIdentifier), parentId, messageName, throwableOptional, 0, reason, true); - myPrintStream.println("\n##teamcity[testFinished" + nameAndId + "]"); + myPrintStream.println("##teamcity[testFinished" + nameAndId + "]"); } final Set descendants = myTestPlan != null ? myTestPlan.getDescendants(testIdentifier) : Collections.emptySet(); @@ -231,11 +231,11 @@ public class JUnit5TestExecutionListener implements TestExecutionListener { } private void testStarted(TestIdentifier testIdentifier) { - myPrintStream.println("\n##teamcity[testStarted" + idAndName(testIdentifier) + " " + getLocationHint(testIdentifier) + "]"); + myPrintStream.println("##teamcity[testStarted" + idAndName(testIdentifier) + " " + getLocationHint(testIdentifier) + "]"); } private void testFinished(TestIdentifier testIdentifier, long duration) { - myPrintStream.println("\n##teamcity[testFinished" + idAndName(testIdentifier) + (duration > 0 ? " duration='" + duration + "'" : "") + "]"); + myPrintStream.println("##teamcity[testFinished" + idAndName(testIdentifier) + (duration > 0 ? " duration='" + duration + "'" : "") + "]"); } private void testFailure(TestIdentifier testIdentifier, @@ -296,7 +296,7 @@ public class JUnit5TestExecutionListener implements TestExecutionListener { } } finally { - myPrintStream.println("\n" + MapSerializerUtil.asString(messageName, attrs)); + myPrintStream.println(MapSerializerUtil.asString(messageName, attrs)); } } diff --git a/plugins/junit5_rt_tests/test/com/intellij/junit5/JUnit5EventsTest.java b/plugins/junit5_rt_tests/test/com/intellij/junit5/JUnit5EventsTest.java index 999797e0b459..ed63f1133b46 100644 --- a/plugins/junit5_rt_tests/test/com/intellij/junit5/JUnit5EventsTest.java +++ b/plugins/junit5_rt_tests/test/com/intellij/junit5/JUnit5EventsTest.java @@ -80,16 +80,11 @@ class JUnit5EventsTest { String lineSeparator = MapSerializerUtil.escapeStr(System.getProperty("line.separator"), MapSerializerUtil.STD_ESCAPER); Assertions.assertEquals("##teamcity[enteredTheMatrix]\n" + - "\n" + "##teamcity[testStarted id='|[engine:testMethod|]' name='test1()' nodeId='|[engine:testMethod|]' parentNodeId='|[engine:testClass|]' locationHint='java:test://com.intellij.junit5.JUnit5EventsTest$TestClass/test1' metainfo='']\n" + "##teamcity[testStdOut id='|[engine:testMethod|]' name='test1()' nodeId='|[engine:testMethod|]' parentNodeId='|[engine:testClass|]' out = 'timestamp = " + reportEntry.getTimestamp() + ", key1 = value1, stdout = out1']\n" + - "\n" + "##teamcity[testFailed name='test1()' id='|[engine:testMethod|]' nodeId='|[engine:testMethod|]' parentNodeId='|[engine:testClass|]' message='message1|nComparison Failure: ' expected='expected1' actual='actual1' details='']\n" + - "\n" + "##teamcity[testFailed name='test1()' id='|[engine:testMethod|]' nodeId='|[engine:testMethod|]' parentNodeId='|[engine:testClass|]' message='message2|nComparison Failure: ' expected='expected2' actual='actual2' details='']\n" + - "\n" + "##teamcity[testFailed name='test1()' id='|[engine:testMethod|]' nodeId='|[engine:testMethod|]' parentNodeId='|[engine:testClass|]' message='2 errors (2 failures)|r|n\tmessage1|r|n\tmessage2' details='TRACE']\n" + - "\n" + "##teamcity[testFinished id='|[engine:testMethod|]' name='test1()' nodeId='|[engine:testMethod|]' parentNodeId='|[engine:testClass|]']\n", StringUtil.convertLineSeparators(myBuf.toString())); } @@ -115,9 +110,7 @@ class JUnit5EventsTest { "##teamcity[suiteTreeEnded id='|[engine:testClass|]' name='JUnit5EventsTest$TestClass' nodeId='|[engine:testClass|]' parentNodeId='0']\n" + "##teamcity[treeEnded]\n" + "##teamcity[testSuiteStarted id='|[engine:testMethod|]' name='brokenStream()' nodeId='|[engine:testMethod|]' parentNodeId='|[engine:testClass|]'locationHint='java:test://com.intellij.junit5.JUnit5EventsTest$TestClass/brokenStream' metainfo='']\n" + - "\n" + "##teamcity[testFailed name='Class Configuration' id='|[engine:testMethod|]' nodeId='|[engine:testMethod|]' parentNodeId='|[engine:testClass|]' error='true' message='' details='TRACE']\n" + - "\n" + "##teamcity[testFinished name='Class Configuration' nodeId='|[engine:testMethod|]' parentNodeId='|[engine:testClass|]' ]\n" + "##teamcity[testSuiteFinished id='|[engine:testMethod|]' name='brokenStream()' nodeId='|[engine:testMethod|]' parentNodeId='|[engine:testClass|]']\n", StringUtil.convertLineSeparators(myBuf.toString())); } diff --git a/plugins/testng/testSources/com/theoryinpractice/testng/configuration/TestNGTreeHierarchyTest.java b/plugins/testng/testSources/com/theoryinpractice/testng/configuration/TestNGTreeHierarchyTest.java index 77a1e4dfaad3..af232ab122e7 100644 --- a/plugins/testng/testSources/com/theoryinpractice/testng/configuration/TestNGTreeHierarchyTest.java +++ b/plugins/testng/testSources/com/theoryinpractice/testng/configuration/TestNGTreeHierarchyTest.java @@ -33,11 +33,8 @@ public class TestNGTreeHierarchyTest { suite.getTests().add(test); doTest(suite,"##teamcity[enteredTheMatrix]\n" + - "\n" + "##teamcity[testSuiteStarted name ='ATest' locationHint = 'java:suite://a.ATest']\n" + - "\n" + "##teamcity[testStarted name='ATest.test1|[0|]' locationHint='java:test://a.ATest/test1|[0|]']\n" + - "\n" + "##teamcity[testFinished name='ATest.test1|[0|]']\n"); } @@ -51,13 +48,9 @@ public class TestNGTreeHierarchyTest { listener.onFinish((ISuite)null); Assert.assertEquals("output: " + buf, "##teamcity[enteredTheMatrix]\n" + - "\n" + "##teamcity[testSuiteStarted name ='ATest' locationHint = 'java:suite://ATest']\n" + - "\n" + "##teamcity[testStarted name='ATest.testName' locationHint='java:test://ATest/testName|[0|]']\n" + - "\n" + "##teamcity[testIgnored name='ATest.testName']\n" + - "\n" + "##teamcity[testFinished name='ATest.testName']\n" + "##teamcity[testSuiteFinished name='ATest']\n", StringUtil.convertLineSeparators(buf.toString())); } @@ -75,19 +68,12 @@ public class TestNGTreeHierarchyTest { listener.onFinish((ISuite)null); Assert.assertEquals("output: " + buf, "##teamcity[enteredTheMatrix]\n" + - "\n" + "##teamcity[testSuiteStarted name ='ATest' locationHint = 'java:suite://ATest']\n" + - "\n" + "##teamcity[testStarted name='ATest.testName' locationHint='java:test://ATest/testName|[0|]']\n" + - "\n" + "##teamcity[testFinished name='ATest.testName']\n" + - "\n" + "##teamcity[testStarted name='ATest.testName1' locationHint='java:test://ATest/testName1|[0|]']\n" + - "\n" + "##teamcity[testFinished name='ATest.testName1']\n" + - "\n" + "##teamcity[testStarted name='ATest.testName (1)' locationHint='java:test://ATest/testName|[1|]']\n" + - "\n" + "##teamcity[testFinished name='ATest.testName (1)']\n" + "##teamcity[testSuiteFinished name='ATest']\n", StringUtil.convertLineSeparators(buf.toString())); } @@ -107,18 +93,12 @@ public class TestNGTreeHierarchyTest { listener.onFinish((ISuite)null); Assert.assertEquals("output: " + buf, "##teamcity[enteredTheMatrix]\n" + - "\n" + "##teamcity[testSuiteStarted name ='ATest' locationHint = 'java:suite://ATest']\n" + - "\n" + "##teamcity[testStarted name='ATest.testName' locationHint='java:test://ATest/testName|[0|]']\n" + "##teamcity[testSuiteFinished name='ATest']\n" + - "\n" + "##teamcity[testSuiteStarted name ='BTest' locationHint = 'java:suite://BTest']\n" + - "\n" + "##teamcity[testStarted name='BTest.testName' locationHint='java:test://BTest/testName|[0|]']\n" + - "\n" + "##teamcity[testFinished name='ATest.testName']\n" + - "\n" + "##teamcity[testFinished name='BTest.testName']\n" + "##teamcity[testSuiteFinished name='BTest']\n", StringUtil.convertLineSeparators(buf.toString())); } @@ -133,13 +113,9 @@ public class TestNGTreeHierarchyTest { listener.onFinish((ISuite)null); Assert.assertEquals("output: " + buf, "##teamcity[enteredTheMatrix]\n" + - "\n" + "##teamcity[testSuiteStarted name ='ATest' locationHint = 'java:suite://ATest']\n" + - "\n" + "##teamcity[testStarted name='ATest.testName' locationHint='java:test://ATest/testName|[0|]']\n" + - "\n" + "##teamcity[testFailed name='ATest.testName' error='true' message='' details='java.lang.Exception|n']\n" + - "\n" + "##teamcity[testFinished name='ATest.testName']\n" + "##teamcity[testSuiteFinished name='ATest']\n", StringUtil.convertLineSeparators(buf.toString())); } @@ -155,13 +131,9 @@ public class TestNGTreeHierarchyTest { listener.onFinish((ISuite)null); Assert.assertEquals("output: " + buf, "##teamcity[enteredTheMatrix]\n" + - "\n" + "##teamcity[testSuiteStarted name ='ATest' locationHint = 'java:suite://ATest']\n" + - "\n" + "##teamcity[testStarted name='ATest.testName' locationHint='java:test://ATest/testName|[0|]']\n" + - "\n" + "##teamcity[testIgnored name='ATest.testName']\n" + - "\n" + "##teamcity[testFinished name='ATest.testName']\n" + "##teamcity[testSuiteFinished name='ATest']\n", StringUtil.convertLineSeparators(buf.toString())); } @@ -176,19 +148,12 @@ public class TestNGTreeHierarchyTest { suite.getTests().add(test); doTest(suite, "##teamcity[enteredTheMatrix]\n" + - "\n" + "##teamcity[testSuiteStarted name ='ATest' locationHint = 'java:suite://a.ATest']\n" + - "\n" + "##teamcity[testStarted name='ATest.test1|[0|]' locationHint='java:test://a.ATest/test1|[0|]']\n" + - "\n" + "##teamcity[testFinished name='ATest.test1|[0|]']\n" + - "\n" + "##teamcity[testStarted name='ATest.test1|[1|] (1)' locationHint='java:test://a.ATest/test1|[1|]']\n" + - "\n" + "##teamcity[testFinished name='ATest.test1|[1|] (1)']\n" + - "\n" + "##teamcity[testStarted name='ATest.test1|[2|] (2)' locationHint='java:test://a.ATest/test1|[2|]']\n" + - "\n" + "##teamcity[testFinished name='ATest.test1|[2|] (2)']\n"); } @@ -212,31 +177,18 @@ public class TestNGTreeHierarchyTest { listener.onSuiteFinish(className); Assert.assertEquals("output: " + buf,"##teamcity[enteredTheMatrix]\n" + - "\n" + "##teamcity[testSuiteStarted name ='ATest' locationHint = 'java:suite://a.ATest']\n" + - "\n" + "##teamcity[testStarted name='ATest.setUp' locationHint='java:test://a.ATest/setUp|[0|]' config='true']\n" + - "\n" + "##teamcity[testFinished name='ATest.setUp']\n" + - "\n" + "##teamcity[testStarted name='ATest.test1' locationHint='java:test://a.ATest/test1|[0|]']\n" + - "\n" + "##teamcity[testFinished name='ATest.test1']\n" + - "\n" + "##teamcity[testStarted name='ATest.tearDown' locationHint='java:test://a.ATest/tearDown|[0|]' config='true']\n" + - "\n" + "##teamcity[testFinished name='ATest.tearDown']\n" + - "\n" + "##teamcity[testStarted name='ATest.setUp (1)' locationHint='java:test://a.ATest/setUp|[1|]' config='true']\n" + - "\n" + "##teamcity[testFinished name='ATest.setUp (1)']\n" + - "\n" + "##teamcity[testStarted name='ATest.test2' locationHint='java:test://a.ATest/test2|[0|]']\n" + - "\n" + "##teamcity[testFinished name='ATest.test2']\n" + - "\n" + "##teamcity[testStarted name='ATest.tearDown (1)' locationHint='java:test://a.ATest/tearDown|[1|]' config='true']\n" + - "\n" + "##teamcity[testFinished name='ATest.tearDown (1)']\n" + "##teamcity[testSuiteFinished name='a.ATest']\n", StringUtil.convertLineSeparators(buf.toString())); } @@ -253,13 +205,9 @@ public class TestNGTreeHierarchyTest { listener.onSuiteFinish(className); Assert.assertEquals("output: " + buf, "##teamcity[enteredTheMatrix]\n" + - "\n" + "##teamcity[testSuiteStarted name ='ATest' locationHint = 'java:suite://a.ATest']\n" + - "\n" + "##teamcity[testStarted name='ATest.setUp' locationHint='java:test://a.ATest/setUp|[0|]' config='true']\n" + - "\n" + "##teamcity[testFailed name='ATest.setUp' error='true' message='' details='java.lang.Exception|n']\n" + - "\n" + "##teamcity[testFinished name='ATest.setUp']\n" + "##teamcity[testSuiteFinished name='a.ATest']\n", StringUtil.convertLineSeparators(buf.toString())); } @@ -281,15 +229,10 @@ public class TestNGTreeHierarchyTest { listener.onSuiteFinish(className); Assert.assertEquals("output: " + buf, "##teamcity[enteredTheMatrix]\n" + - "\n" + "##teamcity[testSuiteStarted name ='ATest' locationHint = 'java:suite://a.ATest']\n" + - "\n" + "##teamcity[testStarted name='ATest.testMe|[null, null|]' locationHint='java:test://ATest/testMe|[0|]']\n" + - "\n" + "##teamcity[testFinished name='ATest.testMe|[null, null|]']\n" + - "\n" + "##teamcity[testStarted name='ATest.tearDown|[testName|]' locationHint='java:test://a.ATest/tearDown|[0|]' config='true']\n" + - "\n" + "##teamcity[testFinished name='ATest.tearDown|[testName|]']\n" + "##teamcity[testSuiteFinished name='a.ATest']\n", StringUtil.convertLineSeparators(buf.toString())); } @@ -302,11 +245,8 @@ public class TestNGTreeHierarchyTest { listener.onTestStart(result); listener.onTestFinished(result); Assert.assertEquals("output: " + buf, "##teamcity[enteredTheMatrix]\n" + - "\n" + "##teamcity[testSuiteStarted name ='ATest' locationHint = 'java:suite://ATest']\n" + - "\n" + "##teamcity[testStarted name='ATest.testMe|[null, null|]' locationHint='java:test://ATest/testMe|[0|]']\n" + - "\n" + "##teamcity[testFinished name='ATest.testMe|[null, null|]']\n", StringUtil.convertLineSeparators(buf.toString())); } @@ -325,19 +265,12 @@ public class TestNGTreeHierarchyTest { listener.onTestFinished(result); } Assert.assertEquals("output: " + buf, "##teamcity[enteredTheMatrix]\n" + - "\n" + "##teamcity[testSuiteStarted name ='ATest' locationHint = 'java:suite://ATest']\n" + - "\n" + "##teamcity[testStarted name='ATest.testMe|[null, null|] (1)' locationHint='java:test://ATest/testMe|[1|]']\n" + - "\n" + "##teamcity[testFinished name='ATest.testMe|[null, null|] (1)']\n" + - "\n" + "##teamcity[testStarted name='ATest.testMe|[null, null|] (3)' locationHint='java:test://ATest/testMe|[3|]']\n" + - "\n" + "##teamcity[testFinished name='ATest.testMe|[null, null|] (3)']\n" + - "\n" + "##teamcity[testStarted name='ATest.testMe|[null, null|] (5)' locationHint='java:test://ATest/testMe|[5|]']\n" + - "\n" + "##teamcity[testFinished name='ATest.testMe|[null, null|] (5)']\n", StringUtil.convertLineSeparators(buf.toString())); } diff --git a/plugins/testng_rt/src/com/intellij/rt/testng/IDEATestNGRemoteListener.java b/plugins/testng_rt/src/com/intellij/rt/testng/IDEATestNGRemoteListener.java index cf455d30313a..37699947fed8 100644 --- a/plugins/testng_rt/src/com/intellij/rt/testng/IDEATestNGRemoteListener.java +++ b/plugins/testng_rt/src/com/intellij/rt/testng/IDEATestNGRemoteListener.java @@ -198,7 +198,7 @@ public class IDEATestNGRemoteListener { } } } - myPrintStream.println("\n##teamcity[testSuiteStarted name ='" + escapeName(currentClassName) + + myPrintStream.println("##teamcity[testSuiteStarted name ='" + escapeName(currentClassName) + (provideLocation ? "' locationHint = '" + location : "") + "']"); myCurrentSuites.add(currentClassName); } @@ -216,7 +216,7 @@ public class IDEATestNGRemoteListener { final String methodName = result.getDisplayMethodName(); final String location = className + "/" + result.getMethodName() + (invocationCount >= 0 ? "[" + invocationCount + "]" : ""); myPrintStream.println( - "\n##teamcity[testStarted name='" + escapeName(getShortName(className) + "." + methodName + (paramString != null ? paramString : "")) + + "##teamcity[testStarted name='" + escapeName(getShortName(className) + "." + methodName + (paramString != null ? paramString : "")) + "' locationHint='java:test://" + escapeName(location) + (config ? "' config='true" : "") + "']"); } @@ -252,7 +252,6 @@ public class IDEATestNGRemoteListener { else { attrs.put("message", ""); } - myPrintStream.println(); myPrintStream.println(MapSerializerUtil.asString(MapSerializerUtil.TEST_FAILED, attrs)); onTestFinished(result); } @@ -262,13 +261,13 @@ public class IDEATestNGRemoteListener { onTestStart(result); mySkipped++; } - myPrintStream.println("\n##teamcity[testIgnored name='" + escapeName(getTestMethodNameWithParams(result)) + "']"); + myPrintStream.println("##teamcity[testIgnored name='" + escapeName(getTestMethodNameWithParams(result)) + "']"); onTestFinished(result); } public void onTestFinished(ExposedTestResult result) { final long duration = result.getDuration(); - myPrintStream.println("\n##teamcity[testFinished name='" + + myPrintStream.println("##teamcity[testFinished name='" + escapeName(getTestMethodNameWithParams(result)) + (duration > 0 ? "' duration='" + duration : "") + "']");