mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
junit assumption failure: ensure started/finished pair (IDEA-166556)
This commit is contained in:
+98
@@ -655,6 +655,104 @@ public class JUnitTreeByDescriptionHierarchyTest {
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testAssumptionFailures() throws Exception {
|
||||
Description root = Description.createSuiteDescription("root");
|
||||
for (int i = 0; i< 5; i++) {
|
||||
Description testClassDescription = Description.createSuiteDescription("Test" + i);
|
||||
root.addChild(testClassDescription);
|
||||
testClassDescription.addChild(Description.createTestDescription("Test" + i, "testName"));
|
||||
}
|
||||
|
||||
final StringBuffer buf = new StringBuffer();
|
||||
final JUnit4TestListener sender = createListener(buf);
|
||||
sender.sendTree(root);
|
||||
|
||||
Assert.assertEquals("output: " + buf, "##teamcity[enteredTheMatrix]\n" +
|
||||
"##teamcity[suiteTreeStarted name='Test0' locationHint='java:suite://Test0']\n" +
|
||||
"##teamcity[suiteTreeNode name='Test0.testName' locationHint='java:test://Test0.testName']\n" +
|
||||
"##teamcity[suiteTreeEnded name='Test0']\n" +
|
||||
"##teamcity[suiteTreeStarted name='Test1' locationHint='java:suite://Test1']\n" +
|
||||
"##teamcity[suiteTreeNode name='Test1.testName' locationHint='java:test://Test1.testName']\n" +
|
||||
"##teamcity[suiteTreeEnded name='Test1']\n" +
|
||||
"##teamcity[suiteTreeStarted name='Test2' locationHint='java:suite://Test2']\n" +
|
||||
"##teamcity[suiteTreeNode name='Test2.testName' locationHint='java:test://Test2.testName']\n" +
|
||||
"##teamcity[suiteTreeEnded name='Test2']\n" +
|
||||
"##teamcity[suiteTreeStarted name='Test3' locationHint='java:suite://Test3']\n" +
|
||||
"##teamcity[suiteTreeNode name='Test3.testName' locationHint='java:test://Test3.testName']\n" +
|
||||
"##teamcity[suiteTreeEnded name='Test3']\n" +
|
||||
"##teamcity[suiteTreeStarted name='Test4' locationHint='java:suite://Test4']\n" +
|
||||
"##teamcity[suiteTreeNode name='Test4.testName' locationHint='java:test://Test4.testName']\n" +
|
||||
"##teamcity[suiteTreeEnded name='Test4']\n" +
|
||||
"##teamcity[treeEnded]\n", StringUtil.convertLineSeparators(buf.toString()));
|
||||
|
||||
buf.setLength(0);
|
||||
|
||||
sender.testRunStarted(root);
|
||||
final Exception exception = new Exception();
|
||||
exception.setStackTrace(new StackTraceElement[0]);
|
||||
int idx = 0;
|
||||
for (Description description : root.getChildren()) {
|
||||
if (idx++ % 2 != 0) {
|
||||
sender.testAssumptionFailure(new Failure(description, exception));
|
||||
}
|
||||
else {
|
||||
for (Description testDescription : description.getChildren()) {
|
||||
sender.testStarted(testDescription);
|
||||
sender.testFinished(testDescription);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sender.testRunFinished(new Result());
|
||||
|
||||
Assert.assertEquals("output: " + buf, "##teamcity[rootName name = 'root' location = 'java:suite://root']\n" +
|
||||
"\n" +
|
||||
"##teamcity[testSuiteStarted name='Test0']\n" +
|
||||
"\n" +
|
||||
"##teamcity[testStarted name='Test0.testName' locationHint='java:test://Test0.testName']\n" +
|
||||
"\n" +
|
||||
"##teamcity[testFinished name='Test0.testName']\n" +
|
||||
"\n" +
|
||||
"##teamcity[testSuiteFinished name='Test0']\n" +
|
||||
"\n" +
|
||||
"##teamcity[testSuiteStarted name='Test1']\n" +
|
||||
"\n" +
|
||||
"##teamcity[testStarted name='Test1.testName' locationHint='java:test://Test1.testName']\n" +
|
||||
"\n" +
|
||||
"##teamcity[testIgnored name='Test1.testName' details='java.lang.Exception|n' error='true' message='']\n" +
|
||||
"\n" +
|
||||
"##teamcity[testFinished name='Test1.testName']\n" +
|
||||
"\n" +
|
||||
"##teamcity[testSuiteFinished name='Test1']\n" +
|
||||
"\n" +
|
||||
"##teamcity[testSuiteStarted name='Test2']\n" +
|
||||
"\n" +
|
||||
"##teamcity[testStarted name='Test2.testName' locationHint='java:test://Test2.testName']\n" +
|
||||
"\n" +
|
||||
"##teamcity[testFinished name='Test2.testName']\n" +
|
||||
"\n" +
|
||||
"##teamcity[testSuiteFinished name='Test2']\n" +
|
||||
"\n" +
|
||||
"##teamcity[testSuiteStarted name='Test3']\n" +
|
||||
"\n" +
|
||||
"##teamcity[testStarted name='Test3.testName' locationHint='java:test://Test3.testName']\n" +
|
||||
"\n" +
|
||||
"##teamcity[testIgnored name='Test3.testName' details='java.lang.Exception|n' error='true' message='']\n" +
|
||||
"\n" +
|
||||
"##teamcity[testFinished name='Test3.testName']\n" +
|
||||
"\n" +
|
||||
"##teamcity[testSuiteFinished name='Test3']\n" +
|
||||
"\n" +
|
||||
"##teamcity[testSuiteStarted name='Test4']\n" +
|
||||
"\n" +
|
||||
"##teamcity[testStarted name='Test4.testName' locationHint='java:test://Test4.testName']\n" +
|
||||
"\n" +
|
||||
"##teamcity[testFinished name='Test4.testName']\n" +
|
||||
"\n" +
|
||||
"##teamcity[testSuiteFinished name='Test4']\n", StringUtil.convertLineSeparators(buf.toString()));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSingleMethod() throws Exception {
|
||||
final Description rootDescription = Description.createTestDescription("TestA", "testName");
|
||||
|
||||
@@ -45,7 +45,6 @@ public class JUnit4TestListener extends RunListener {
|
||||
private final PrintStream myPrintStream;
|
||||
private String myRootName;
|
||||
private long myCurrentTestStart;
|
||||
private int myFinishedCount = 0;
|
||||
|
||||
private Description myCurrentTest;
|
||||
private Map myWaitingQueue = new LinkedHashMap();
|
||||
@@ -130,7 +129,6 @@ public class JUnit4TestListener extends RunListener {
|
||||
|
||||
for (int i = myStartedSuites.size() - 1; i >= idx; i--) {
|
||||
currentClass = (Description)myStartedSuites.remove(i);
|
||||
myFinishedCount = 0;
|
||||
myPrintStream.println("\n##teamcity[testSuiteFinished name=\'" + escapeName(getShortName(JUnit4ReflectionUtil.getClassName(currentClass))) + "\']");
|
||||
}
|
||||
|
||||
@@ -195,7 +193,6 @@ public class JUnit4TestListener extends RunListener {
|
||||
|
||||
private void testFinishedNoDumping(final String methodName) {
|
||||
if (methodName != null) {
|
||||
myFinishedCount++;
|
||||
final long duration = currentTime() - myCurrentTestStart;
|
||||
myPrintStream.println("\n##teamcity[testFinished name=\'" + escapeName(methodName) +
|
||||
(duration > 0 ? "\' duration=\'" + Long.toString(duration) : "") + "\']");
|
||||
@@ -216,16 +213,13 @@ public class JUnit4TestListener extends RunListener {
|
||||
testFailure(failure, description, messageName, CLASS_CONFIGURATION);
|
||||
classConfigurationFinished(description);
|
||||
}
|
||||
|
||||
if (myFinishedCount == 0) {
|
||||
//only setup failures
|
||||
if (myStartedSuites.isEmpty() || !description.equals(myStartedSuites.get(myStartedSuites.size() - 1))) {
|
||||
for (Iterator iterator = description.getChildren().iterator(); iterator.hasNext(); ) {
|
||||
Description next = (Description)iterator.next();
|
||||
testStarted(next);
|
||||
testFailure(isIgnored ? failure : null, next, MapSerializerUtil.TEST_IGNORED);
|
||||
testFinished(next);
|
||||
}
|
||||
myFinishedCount = 0;
|
||||
}
|
||||
}
|
||||
else {
|
||||
|
||||
Reference in New Issue
Block a user