void (final @NotNull TestStartedEvent testStartedEvent) { //Duplicated event // creates test // adds to running tests map //Progress started //fire events final String testName = testStartedEvent.getName(); final String locationUrl = testStartedEvent.getLocationUrl(); final String metainfo = testStartedEvent.getMetainfo(); final boolean isConfig = testStartedEvent.isConfig(); final String fullName = getFullTestName(testName); if (myRunningTestsFullNameToProxy.containsKey(fullName)) { //Duplicated event logProblem("Test [" + fullName + "] has been already started"); if (SMTestRunnerConnectionUtil.isInDebugMode()) { return; } } SMTestProxy parentSuite = getCurrentSuite(); SMTestProxy testProxy = findChild(parentSuite, locationUrl != null ? locationUrl : fullName, false); if (testProxy != null && TestListenerProtocol.CLASS_CONFIGURATION.equals(fullName)) { parentSuite = testProxy; testProxy = null; } if (testProxy == null) { // creates test testProxy = new SMTestProxy(testName, false, locationUrl, metainfo, false); testProxy.setConfig(isConfig); if (myTreeBuildBeforeStart) testProxy.setTreeBuildBeforeStart(); if (myLocator != null) { testProxy.setLocator(myLocator); } parentSuite.addChild(testProxy); } else if (metainfo != null) { testProxy.setMetainfo(metainfo); } // adds to running tests map myRunningTestsFullNameToProxy.put(fullName, testProxy); //Progress started testProxy.setStarted(); //fire events fireOnTestStarted(testProxy); }