junit: ensure control operations are started from the new line (IDEA-158135)

This commit is contained in:
Anna Kozlova
2016-09-12 14:40:08 +03:00
parent f5262aa97c
commit 710891ee88
2 changed files with 80 additions and 19 deletions
@@ -68,34 +68,45 @@ public class JUnitTreeByDescriptionHierarchyTest {
"##teamcity[rootName name = 'root' location = 'java:suite://root']\n" +
"\n" +
"##teamcity[testSuiteStarted name='TestA']\n" +
"\n" +
"##teamcity[testSuiteStarted name='|[0|]']\n" +
"\n" +
"##teamcity[testStarted name='testName|[0|]' locationHint='java:test://a.TestA.testName|[0|]']\n" +
"\n" +
"##teamcity[testFinished name='testName|[0|]']\n" +
"\n" +
"##teamcity[testSuiteFinished name='|[0|]']\n" +
"\n" +
"##teamcity[testSuiteStarted name='|[1|]']\n" +
"\n" +
"##teamcity[testStarted name='testName|[1|]' locationHint='java:test://a.TestA.testName|[1|]']\n" +
"\n" +
"##teamcity[testFinished name='testName|[1|]']\n" +
"\n" +
"##teamcity[testSuiteFinished name='|[1|]']\n" +
"\n" +
"##teamcity[testSuiteFinished name='TestA']\n" +
"\n" +
"##teamcity[testSuiteStarted name='TestB']\n" +
"\n" +
"##teamcity[testSuiteStarted name='|[0|]']\n" +
"\n" +
"##teamcity[testStarted name='testName|[0|]' locationHint='java:test://a.TestB.testName|[0|]']\n" +
"\n" +
"##teamcity[testFinished name='testName|[0|]']\n" +
"\n" +
"##teamcity[testSuiteFinished name='|[0|]']\n" +
"\n" +
"##teamcity[testSuiteStarted name='|[1|]']\n" +
"\n" +
"##teamcity[testStarted name='testName|[1|]' locationHint='java:test://a.TestB.testName|[1|]']\n" +
"\n" +
"##teamcity[testFinished name='testName|[1|]']\n" +
"\n" +
"##teamcity[testSuiteFinished name='|[1|]']\n" +
"##teamcity[testSuiteFinished name='TestB']\n");
"##teamcity[testSuiteFinished name='TestB']");
}
@Test
@@ -119,6 +130,7 @@ public class JUnitTreeByDescriptionHierarchyTest {
}
sender.testRunFinished(new Result());
Assert.assertEquals("output: " + buf, "##teamcity[enteredTheMatrix]\n" +
"\n" +
"##teamcity[testSuiteStarted name='ATest' locationHint='java:suite://ATest']\n" +
"\n" +
"##teamcity[testStarted name='ATest.test1' locationHint='java:test://ATest.test1']\n" +
@@ -128,7 +140,8 @@ public class JUnitTreeByDescriptionHierarchyTest {
"##teamcity[testStarted name='ATest.test2' locationHint='java:test://ATest.test2']\n" +
"\n" +
"##teamcity[testFinished name='ATest.test2']\n" +
"##teamcity[testSuiteFinished name='ATest']\n", StringUtil.convertLineSeparators(buf.toString()));
"\n" +
"##teamcity[testSuiteFinished name='ATest']", StringUtil.convertLineSeparators(buf.toString()));
}
@Test
@@ -151,19 +164,22 @@ public class JUnitTreeByDescriptionHierarchyTest {
"##teamcity[suiteTreeEnded name='MyTest']\n" +
"##teamcity[treeEnded]\n",
"##teamcity[rootName name = 'root' location = 'java:suite://root']\n" +
"\n" +
"##teamcity[testSuiteStarted name='MyTest']\n" +
"\n" +
"##teamcity[testStarted name='MyTest.testMe' locationHint='java:test://a.MyTest.testMe']\n" +
"\n" +
"##teamcity[testFinished name='MyTest.testMe']\n" +
"\n" +
"##teamcity[testSuiteFinished name='MyTest']\n" +
"\n" +
"##teamcity[testSuiteStarted name='MyTest']\n" +
"\n" +
"##teamcity[testStarted name='MyTest.testMe' locationHint='java:test://b.MyTest.testMe']\n" +
"\n" +
"##teamcity[testFinished name='MyTest.testMe']\n" +
"##teamcity[testSuiteFinished nam" +
"e='MyTest']\n");
"\n" +
"##teamcity[testSuiteFinished name='MyTest']");
}
@Test
@@ -184,18 +200,22 @@ public class JUnitTreeByDescriptionHierarchyTest {
"##teamcity[treeEnded]\n",
//start
"##teamcity[rootName name = 'TestA' comment = 'a' location = 'java:suite://a.TestA']\n" +
"\n" +
"##teamcity[testSuiteStarted name='|[0|]']\n" +
"\n" +
"##teamcity[testStarted name='testName|[0|]' locationHint='java:test://a.TestA.testName|[0|]']\n" +
"\n" +
"##teamcity[testFinished name='testName|[0|]']\n" +
"\n" +
"##teamcity[testSuiteFinished name='|[0|]']\n" +
"\n" +
"##teamcity[testSuiteStarted name='|[1|]']\n" +
"\n" +
"##teamcity[testStarted name='testName|[1|]' locationHint='java:test://a.TestA.testName|[1|]']\n" +
"\n" +
"##teamcity[testFinished name='testName|[1|]']\n" +
"##teamcity[testSuiteFinished name='|[1|]']\n");
"\n" +
"##teamcity[testSuiteFinished name='|[1|]']");
}
@Test
@@ -222,18 +242,22 @@ public class JUnitTreeByDescriptionHierarchyTest {
"##teamcity[treeEnded]\n",
//start
"##teamcity[rootName name = 'TestA' comment = 'a' location = 'java:suite://a.TestA']\n" +
"\n" +
"##teamcity[testSuiteStarted name='|[0|]']\n" +
"\n" +
"##teamcity[testStarted name='testName|[0|]' locationHint='java:test://a.TestA.testName|[0|]']\n" +
"\n" +
"##teamcity[testFinished name='testName|[0|]']\n" +
"\n" +
"##teamcity[testSuiteFinished name='|[0|]']\n" +
"\n" +
"##teamcity[testSuiteStarted name='|[0|]']\n" +
"\n" +
"##teamcity[testStarted name='testName|[0|]' locationHint='java:test://a.TestA.testName|[0|]']\n" +
"\n" +
"##teamcity[testFinished name='testName|[0|]']\n" +
"##teamcity[testSuiteFinished name='|[0|]']\n");
"\n" +
"##teamcity[testSuiteFinished name='|[0|]']");
}
@Test
@@ -260,18 +284,22 @@ public class JUnitTreeByDescriptionHierarchyTest {
"##teamcity[treeEnded]\n",
//start
"##teamcity[rootName name = 'TestA' comment = 'a' location = 'java:suite://a.TestA']\n" +
"\n" +
"##teamcity[testSuiteStarted name='|[0: with - 1.1|]']\n" +
"\n" +
"##teamcity[testStarted name='testName|[0: with - 1.1|]' locationHint='java:test://a.TestA.testName|[0: with - 1.1|]']\n" +
"\n" +
"##teamcity[testFinished name='testName|[0: with - 1.1|]']\n" +
"\n" +
"##teamcity[testSuiteFinished name='|[0: with - 1.1|]']\n" +
"\n" +
"##teamcity[testSuiteStarted name='|[1: with - 2.1|]']\n" +
"\n" +
"##teamcity[testStarted name='testName|[1: with - 2.1|]' locationHint='java:test://a.TestA.testName|[1: with - 2.1|]']\n" +
"\n" +
"##teamcity[testFinished name='testName|[1: with - 2.1|]']\n" +
"##teamcity[testSuiteFinished name='|[1: with - 2.1|]']\n");
"\n" +
"##teamcity[testSuiteFinished name='|[1: with - 2.1|]']");
}
@Test
@@ -307,22 +335,29 @@ public class JUnitTreeByDescriptionHierarchyTest {
//started
"##teamcity[rootName name = 'root' location = 'java:suite://root']\n" +
"\n" +
"##teamcity[testSuiteStarted name='ASuite1']\n" +
"\n" +
"##teamcity[testSuiteStarted name='ATest']\n" +
"\n" +
"##teamcity[testStarted name='ATest.test1' locationHint='java:test://ATest.test1']\n" +
"\n" +
"##teamcity[testFinished name='ATest.test1']\n" +
"\n" +
"##teamcity[testSuiteFinished name='ATest']\n" +
"\n" +
"##teamcity[testSuiteFinished name='ASuite1']\n" +
"\n" +
"##teamcity[testSuiteStarted name='ASuite2']\n" +
"\n" +
"##teamcity[testSuiteStarted name='ATest']\n" +
"\n" +
"##teamcity[testStarted name='ATest.test1' locationHint='java:test://ATest.test1']\n" +
"\n" +
"##teamcity[testFinished name='ATest.test1']\n" +
"\n" +
"##teamcity[testSuiteFinished name='ATest']\n" +
"##teamcity[testSuiteFinished name='ASuite2']\n");
"##teamcity[testSuiteFinished name='ASuite2']");
}
private static void doTest(Description root, List<Description> tests, String expectedTree, String expectedStart) throws Exception {
@@ -371,6 +406,7 @@ public class JUnitTreeByDescriptionHierarchyTest {
sender.testRunFinished(new Result());
Assert.assertEquals("output: " + buf, "##teamcity[rootName name = 'root' location = 'java:suite://root']\n" +
"\n" +
"##teamcity[testSuiteStarted name='TestA']\n" +
"\n" +
"##teamcity[testStarted name='TestA.testName' locationHint='java:test://TestA.testName']\n" +
@@ -378,7 +414,8 @@ public class JUnitTreeByDescriptionHierarchyTest {
"##teamcity[testIgnored name='TestA.testName' details='java.lang.Exception|n' error='true' message='']\n" +
"\n" +
"##teamcity[testFinished name='TestA.testName']\n" +
"##teamcity[testSuiteFinished name='TestA']\n", StringUtil.convertLineSeparators(buf.toString()));
"\n" +
"##teamcity[testSuiteFinished name='TestA']", StringUtil.convertLineSeparators(buf.toString()));
}
@Test
@@ -408,11 +445,13 @@ public class JUnitTreeByDescriptionHierarchyTest {
sender.testRunFinished(new Result());
Assert.assertEquals("output: " + buf, "##teamcity[rootName name = 'root' location = 'java:suite://root']\n" +
"\n" +
"##teamcity[testStarted name='Class Configuration' locationHint='java:suite://TestA' ]\n" +
"\n" +
"##teamcity[testFailed name='Class Configuration' details='java.lang.Exception|n' error='true' message='']\n" +
"\n" +
"##teamcity[testFinished name='Class Configuration']\n" +
"\n" +
"##teamcity[testSuiteStarted name='TestA']\n" +
"\n" +
"##teamcity[testStarted name='TestA.testName' locationHint='java:test://TestA.testName']\n" +
@@ -420,7 +459,8 @@ public class JUnitTreeByDescriptionHierarchyTest {
"##teamcity[testIgnored name='TestA.testName']\n" +
"\n" +
"##teamcity[testFinished name='TestA.testName']\n" +
"##teamcity[testSuiteFinished name='TestA']\n", StringUtil.convertLineSeparators(buf.toString()));
"\n" +
"##teamcity[testSuiteFinished name='TestA']", StringUtil.convertLineSeparators(buf.toString()));
}
@Test
@@ -497,17 +537,20 @@ public class JUnitTreeByDescriptionHierarchyTest {
sender.testRunFinished(new Result());
Assert.assertEquals("output: " + buf, "##teamcity[rootName name = 'root' location = 'java:suite://root']\n" +
"\n" +
"##teamcity[testSuiteStarted name='TestA']\n" +
"\n" +
"##teamcity[testStarted name='TestA.testName' locationHint='java:test://TestA.testName']\n" +
"\n" +
"##teamcity[testFinished name='TestA.testName']\n" +
"\n" +
"##teamcity[testStarted name='Class Configuration' locationHint='java:suite://TestA' ]\n" +
"\n" +
"##teamcity[testFailed name='Class Configuration' details='java.lang.Exception|n' error='true' message='']\n" +
"\n" +
"##teamcity[testFinished name='Class Configuration']\n" +
"##teamcity[testSuiteFinished name='TestA']\n", StringUtil.convertLineSeparators(buf.toString()));
"\n" +
"##teamcity[testSuiteFinished name='TestA']", StringUtil.convertLineSeparators(buf.toString()));
}
@Test
@@ -541,7 +584,9 @@ public class JUnitTreeByDescriptionHierarchyTest {
sender.testRunFinished(new Result());
Assert.assertEquals("output: " + buf, "##teamcity[rootName name = 'root' location = 'java:suite://root']\n" +
"\n" +
"##teamcity[testSuiteStarted name='TestA']\n" +
"\n" +
"##teamcity[testSuiteStarted name='param']\n" +
"\n" +
"##teamcity[testStarted name='TestA.testName' locationHint='java:test://TestA.testName']\n" +
@@ -549,8 +594,9 @@ public class JUnitTreeByDescriptionHierarchyTest {
"##teamcity[testIgnored name='TestA.testName' details='java.lang.Exception|n' error='true' message='']\n" +
"\n" +
"##teamcity[testFinished name='TestA.testName']\n" +
"\n" +
"##teamcity[testSuiteFinished name='param']\n" +
"##teamcity[testSuiteFinished name='TestA']\n", StringUtil.convertLineSeparators(buf.toString()));
"##teamcity[testSuiteFinished name='TestA']", StringUtil.convertLineSeparators(buf.toString()));
buf.setLength(0);
//testStarted and testFinished are called by the framework
@@ -601,18 +647,22 @@ public class JUnitTreeByDescriptionHierarchyTest {
sender.testRunFinished(new Result());
Assert.assertEquals("output: " + buf, "##teamcity[enteredTheMatrix]\n" +
"\n" +
"##teamcity[testSuiteStarted name='TestA' locationHint='java:suite://a.TestA']\n" +
"\n" +
"##teamcity[testStarted name='TestA.testName' locationHint='java:test://a.TestA.testName']\n" +
"\n" +
"##teamcity[testFinished name='TestA.testName']\n" +
"\n" +
"##teamcity[testSuiteFinished name='TestA']\n" +
"\n" +
"##teamcity[testSuiteStarted name='TestB' locationHint='java:suite://a.TestB']\n" +
"\n" +
"##teamcity[testStarted name='TestB.testName' locationHint='java:test://a.TestB.testName']\n" +
"\n" +
"##teamcity[testFinished name='TestB.testName']\n" +
"##teamcity[testSuiteFinished name='TestB']\n", StringUtil.convertLineSeparators(buf.toString()));
"\n" +
"##teamcity[testSuiteFinished name='TestB']", StringUtil.convertLineSeparators(buf.toString()));
}
private static JUnit4TestListener createListener(final StringBuffer buf) {
@@ -655,6 +705,7 @@ public class JUnitTreeByDescriptionHierarchyTest {
"##teamcity[rootName name = 'ATest' location = 'java:suite://ATest']\n" +
"\n" +
"##teamcity[testSuiteStarted name='testName']\n" +
"\n" +
"##teamcity[testStarted name='ATest.testName|[0|]' locationHint='java:test://ATest.testName|[0|]']\n" +
@@ -664,7 +715,8 @@ public class JUnitTreeByDescriptionHierarchyTest {
"##teamcity[testStarted name='ATest.testName|[1|]' locationHint='java:test://ATest.testName|[1|]']\n" +
"\n" +
"##teamcity[testFinished name='ATest.testName|[1|]']\n" +
"##teamcity[testSuiteFinished name='testName']\n");
"\n" +
"##teamcity[testSuiteFinished name='testName']");
}
@Test
@@ -700,28 +752,37 @@ public class JUnitTreeByDescriptionHierarchyTest {
//start
"##teamcity[rootName name = 'root' location = 'java:suite://root']\n" +
"\n" +
"##teamcity[testSuiteStarted name='ATest']\n" +
"\n" +
"##teamcity[testSuiteStarted name='|[0|]']\n" +
"\n" +
"##teamcity[testStarted name='testName|[0|]' locationHint='java:test://ATest.testName|[0|]']\n" +
"\n" +
"##teamcity[testFinished name='testName|[0|]']\n" +
"\n" +
"##teamcity[testSuiteFinished name='|[0|]']\n" +
"\n" +
"##teamcity[testSuiteStarted name='|[1|]']\n" +
"\n" +
"##teamcity[testStarted name='testName|[1|]' locationHint='java:test://ATest.testName|[1|]']\n" +
"\n" +
"##teamcity[testFinished name='testName|[1|]']\n" +
"\n" +
"##teamcity[testSuiteFinished name='|[1|]']\n" +
"\n" +
"##teamcity[testSuiteFinished name='ATest']\n" +
"\n" +
"##teamcity[testSuiteStarted name='suite']\n" +
"\n" +
"##teamcity[testSuiteStarted name='ATest']\n" +
"\n" +
"##teamcity[testStarted name='ATest.test' locationHint='java:test://ATest.test']\n" +
"\n" +
"##teamcity[testFinished name='ATest.test']\n" +
"\n" +
"##teamcity[testSuiteFinished name='ATest']\n" +
"##teamcity[testSuiteFinished name='suite']\n");
"##teamcity[testSuiteFinished name='suite']");
}
@@ -86,7 +86,7 @@ public class JUnit4TestListener extends RunListener {
dumpQueue(true);
for (int i = myStartedSuites.size() - 1; i>= 0; i--) {
Object parent = JUnit4ReflectionUtil.getClassName((Description)myStartedSuites.get(i));
myPrintStream.println("##teamcity[testSuiteFinished name=\'" + escapeName(getShortName((String)parent)) + "\']");
myPrintStream.print("\n##teamcity[testSuiteFinished name=\'" + escapeName(getShortName((String)parent)) + "\']");
}
myStartedSuites.clear();
}
@@ -131,7 +131,7 @@ public class JUnit4TestListener extends RunListener {
for (int i = myStartedSuites.size() - 1; i >= idx; i--) {
currentClass = (Description)myStartedSuites.remove(i);
myFinishedCount = 0;
myPrintStream.println("##teamcity[testSuiteFinished name=\'" + escapeName(getShortName(JUnit4ReflectionUtil.getClassName(currentClass))) + "\']");
myPrintStream.println("\n##teamcity[testSuiteFinished name=\'" + escapeName(getShortName(JUnit4ReflectionUtil.getClassName(currentClass))) + "\']");
}
for (int i = idx; i < parentsHierarchy.size(); i++) {
@@ -139,7 +139,7 @@ public class JUnit4TestListener extends RunListener {
final String fqName = JUnit4ReflectionUtil.getClassName(descriptionFromHistory);
final String className = getShortName(fqName);
if (!className.equals(myRootName)) {
myPrintStream.println("##teamcity[testSuiteStarted name=\'" + escapeName(className) + "\'" + (parents == null ? getClassLocation(fqName) : "") + "]");
myPrintStream.println("\n##teamcity[testSuiteStarted name=\'" + escapeName(className) + "\'" + (parents == null ? getClassLocation(fqName) : "") + "]");
myStartedSuites.add(descriptionFromHistory);
}
}
@@ -252,7 +252,7 @@ public class JUnit4TestListener extends RunListener {
}
myCurrentTest = description;
myPrintStream.println("##teamcity[testStarted name=\'" + escapeName(CLASS_CONFIGURATION) + "\' " + getClassLocation(JUnit4ReflectionUtil.getClassName(description)) + " ]");
myPrintStream.println("\n##teamcity[testStarted name=\'" + escapeName(CLASS_CONFIGURATION) + "\' " + getClassLocation(JUnit4ReflectionUtil.getClassName(description)) + " ]");
}
private void testFailure(Failure failure, Description description, String messageName, String methodName) {