testng: include invocation number onto configuration methods as they may conflict during parallel execution (IDEA-171382)

This commit is contained in:
Anna.Kozlova
2017-04-20 17:40:02 +02:00
parent bbd9357777
commit e3fbc7dd42
2 changed files with 33 additions and 29 deletions
@@ -226,32 +226,32 @@ public class TestNGTreeHierarchyTest {
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' 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' config='true']\n" +
"\n" +
"##teamcity[testFinished name='ATest.tearDown']\n" +
"\n" +
"##teamcity[testStarted name='ATest.setUp' locationHint='java:test://a.ATest.setUp' config='true']\n" +
"\n" +
"##teamcity[testFinished name='ATest.setUp']\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' locationHint='java:test://a.ATest.tearDown' config='true']\n" +
"\n" +
"##teamcity[testFinished name='ATest.tearDown']\n" +
"##teamcity[testSuiteFinished name='a.ATest']\n", StringUtil.convertLineSeparators(buf.toString()));
"##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()));
}
@Test
@@ -269,7 +269,7 @@ public class TestNGTreeHierarchyTest {
"\n" +
"##teamcity[testSuiteStarted name ='ATest' locationHint = 'java:suite://a.ATest']\n" +
"\n" +
"##teamcity[testStarted name='ATest.setUp' locationHint='java:test://a.ATest.setUp' config='true']\n" +
"##teamcity[testStarted name='ATest.setUp' locationHint='java:test://a.ATest.setUp|[0|]' config='true']\n" +
"\n" +
"##teamcity[testFailed name='ATest.setUp' details='java.lang.Exception|n' error='true' message='']\n" +
"\n" +
@@ -126,6 +126,10 @@ public class IDEATestNGRemoteListener {
public synchronized void onFinish(ITestContext context) {}
public void onTestStart(ExposedTestResult result) {
onStartWithParameters(result, false);
}
public void onStartWithParameters(ExposedTestResult result, boolean config) {
final Object[] parameters = result.getParameters();
final String qualifiedName = result.getClassName() + result.getDisplayMethodName();
Integer invocationCount = myInvocationCounts.get(qualifiedName);
@@ -134,7 +138,7 @@ public class IDEATestNGRemoteListener {
}
Integer normalizedIndex = normalizeInvocationCountInsideIncludedMethods(invocationCount, result);
final String paramString = getParamsString(parameters, normalizedIndex);
onTestStart(result, paramString, normalizedIndex, false);
onTestStart(result, paramString, normalizedIndex, config);
myInvocationCounts.put(qualifiedName, invocationCount + 1);
}
@@ -147,7 +151,7 @@ public class IDEATestNGRemoteListener {
}
public void onConfigurationStart(ExposedTestResult result) {
onTestStart(result, null, -1, true);
onStartWithParameters(result, true);
}
public void onConfigurationSuccess(ExposedTestResult result) {