private String getTestIdentifier(ITestResult result) { return String.format("%s.%s", result.getInstanceName(), result.getMethod().getMethodName()); }
private void checkDuplicatesAndAdd(ITestResult tr) { // Need fully qualified name to guarantee uniqueness in the results map String instanceName = tr.getInstanceName(); String key = instanceName + "." + testName(tr); if (m_allTests.containsKey(key)) { if (tr.getMethod().getCurrentInvocationCount() == 1) { System.err.println("[" + this.getClass().getSimpleName() + "] Test case '" + key + "' already exists in the results"); tr.setStatus(ITestResult.FAILURE); tr.setThrowable(new IllegalStateException("Duplicate test: " + key)); } List<ITestResult> itrList = m_allTests.get(key); itrList.add(tr); m_allTests.put(key, itrList); } else { ArrayList<ITestResult> itrList = new ArrayList<>(); itrList.add(tr); m_allTests.put(key, itrList); } } }
private String testName(ITestResult res) { StringBuilder result = new StringBuilder(); result.append(res.getInstanceName()).append(".").append(res.getMethod().getMethodName()); if (res.getMethod().getConstructorOrMethod().getMethod().isAnnotationPresent(Test.class)) { String dataProviderName = res.getMethod().getConstructorOrMethod().getMethod().getAnnotation(Test.class) .dataProvider(); // Add parameters for methods that use a data provider only if (res.getParameters().length != 0 && !dataProviderName.isEmpty()) { result.append("(").append(Arrays.deepToString(res.getParameters())).append(")"); } } return result.toString(); }
@Override public void run(IHookCallBack hookCallBack, ITestResult testResult) { String testName = testResult.getInstanceName() + "." + testResult.getMethod().getMethodName(); String simpleName = testResult.getTestClass().getRealClass().getSimpleName(); registerThreadWithTest(testName, simpleName); try { hookCallBack.runTestMethod(testResult); } finally { unregisterThreadWithTest(); } }
instName = result.getInstanceName(); } catch (NoSuchMethodError e) {