From e191c110ce3457e5d692904d4e2abe6f50d71509 Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Tue, 14 Jul 2015 15:14:43 +0300 Subject: [PATCH] junit: parameterized with dots --- .../JUnitTreeByDescriptionHierarchyTest.java | 35 +++++++++++++++++++ .../intellij/junit4/JUnit4TestListener.java | 6 +++- 2 files changed, 40 insertions(+), 1 deletion(-) diff --git a/plugins/junit/test/com/intellij/execution/junit/JUnitTreeByDescriptionHierarchyTest.java b/plugins/junit/test/com/intellij/execution/junit/JUnitTreeByDescriptionHierarchyTest.java index 1e49dcfbcdd8..1a28c62df9f9 100644 --- a/plugins/junit/test/com/intellij/execution/junit/JUnitTreeByDescriptionHierarchyTest.java +++ b/plugins/junit/test/com/intellij/execution/junit/JUnitTreeByDescriptionHierarchyTest.java @@ -188,6 +188,41 @@ public class JUnitTreeByDescriptionHierarchyTest { "##teamcity[testSuiteFinished name='|[0|]']\n"); } + @Test + public void testParameterizedClassWithParamsWithDots() throws Exception { + final String className = "a.TestA"; + final Description aTestClassDescription = Description.createSuiteDescription(className); + final ArrayList tests = new ArrayList(); + for (String paramName : new String[]{"[0: with - 1.1]", "[1: with - 2.1]"}) { + final Description param1 = Description.createSuiteDescription(paramName); + aTestClassDescription.addChild(param1); + final Description testDescription = Description.createTestDescription(className, "testName" + paramName); + tests.add(testDescription); + param1.addChild(testDescription); + } + doTest(aTestClassDescription, tests, + //tree + "##teamcity[suiteTreeStarted name='|[0: with - 1.1|]' locationHint='java:suite://a.TestA.|[0: with - 1.1|]']\n" + + "##teamcity[suiteTreeNode name='testName|[0: with - 1.1|]' locationHint='java:test://a.TestA.testName|[0: with - 1.1|]']\n" + + "##teamcity[suiteTreeEnded name='|[0: with - 1.1|]']\n" + + "##teamcity[suiteTreeStarted name='|[1: with - 2.1|]' locationHint='java:suite://a.TestA.|[1: with - 2.1|]']\n" + + "##teamcity[suiteTreeNode name='testName|[1: with - 2.1|]' locationHint='java:test://a.TestA.testName|[1: with - 2.1|]']\n" + + "##teamcity[suiteTreeEnded name='|[1: with - 2.1|]']\n", + //start + "##teamcity[enteredTheMatrix]\n" + + "##teamcity[rootName name = 'TestA' comment = 'a' location = 'java:suite://a.TestA']\n" + + "##teamcity[testSuiteStarted name='|[0: with - 1.1|]']\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" + + "##teamcity[testSuiteFinished name='|[0: with - 1.1|]']\n" + + "##teamcity[testSuiteStarted name='|[1: with - 2.1|]']\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"); + } + @Test public void test2SuitesWithTheSameTest() throws Exception { final Description root = Description.createSuiteDescription("root"); diff --git a/plugins/junit_rt/src/com/intellij/junit4/JUnit4TestListener.java b/plugins/junit_rt/src/com/intellij/junit4/JUnit4TestListener.java index 0584bffdce88..d906a14d23cf 100644 --- a/plugins/junit_rt/src/com/intellij/junit4/JUnit4TestListener.java +++ b/plugins/junit_rt/src/com/intellij/junit4/JUnit4TestListener.java @@ -382,11 +382,15 @@ public class JUnit4TestListener extends RunListener { private static String getShortName(String fqName) { if (fqName == null) return null; - if (fqName.startsWith("[")) { + final int idx = fqName.indexOf("["); + if (idx == 0) { //param name return fqName; } int lastPointIdx = fqName.lastIndexOf('.'); + if (idx > 0 && fqName.endsWith("]")) { + lastPointIdx = fqName.substring(0, idx).lastIndexOf('.'); + } if (lastPointIdx >= 0) { return fqName.substring(lastPointIdx + 1); }