Description describeMethod() { Object[] params = paramsFromAnnotation(); Description parametrised = Description.createSuiteDescription(method.name()); for (int i = 0; i < params.length; i++) { /* Object paramSet = params[i]; parametrised.addChild(Description.createTestDescription(method.frameworkMethod.getMethod().getDeclaringClass(), Utils.stringify(paramSet, i) + " (" + method.name() + ")", method.frameworkMethod.getAnnotations())); */ parametrised.addChild( Description.createTestDescription( method.frameworkMethod.getMethod().getDeclaringClass(), method.name() + " [" + i + "]", method.frameworkMethod.getAnnotations())); } return parametrised; }
/** * Adds a test method into the list of <test-method> tags. * * @param testMethod the test method. * @return true if added sucessfully, otherwise false. */ public boolean addTestMethod(TestMethod testMethod) { for (TestMethod method : this.testMethods) { if (method.equals(testMethod)) { if ((Statuses.get(testMethod.getStatus()) == Statuses.FAIL) || (Statuses.get(testMethod.getStatus()) == Statuses.SKIP)) { method.setStatus(testMethod.getStatus()); } } } return this.testMethods.add(testMethod); }
private void analyzeTestDependencies(List<ISuite> suites) { for (ISuite suite : suites) { log("isuite: " + suite.getName()); // FIXME why implication that noColor = all_tests_were skipped? // in case of noColor all tests were probably skipped if (!noColor) { // FIXME will not work for more than one suite for (Map.Entry<String, ISuiteResult> entry : suite.getResults().entrySet()) { failedConfigurations = entry.getValue().getTestContext().getFailedConfigurations().getAllMethods(); failedMethods = entry.getValue().getTestContext().getFailedTests().getAllMethods(); skippedMethods = entry.getValue().getTestContext().getSkippedTests().getAllMethods(); } } else { // TODO what happens with configs and noColor - does it work? failedConfigurations = new ArrayList<ITestNGMethod>(); failedMethods = new ArrayList<ITestNGMethod>(); skippedMethods = new ArrayList<ITestNGMethod>(); } for (ITestNGMethod method : failedMethods) { log("failed method: " + getClassAndMethodString(method)); for (String depMethod : method.getMethodsDependedUpon()) { log(" dep on: " + depMethod); } } for (ITestNGMethod method : failedConfigurations) { log("failed config: " + getClassAndMethodString(method)); for (String depMethod : method.getMethodsDependedUpon()) { log(" dep on: " + depMethod); } } for (ITestNGMethod method : skippedMethods) { log("skipped method: " + getClassAndMethodString(method)); for (String depMethod : method.getMethodsDependedUpon()) { log(" dep on: " + depMethod); } for (String depGroup : method.getGroupsDependedUpon()) { log(" dep on: " + depGroup); } } // the only way to learn about which groups failed is by checking groups that failed methods // belong to for (ITestNGMethod method : failedMethods) { failedGroups.addAll(Arrays.asList(method.getGroups())); } // FIXME to be removed? there is no such thing as skipped group for (ITestNGMethod method : skippedMethods) { skippedGroups.addAll(Arrays.asList(method.getGroups())); } skippedGroups.removeAll(failedGroups); for (Map.Entry<String, Collection<ITestNGMethod>> entry : suite.getMethodsByGroups().entrySet()) { log("entry: " + entry.getKey()); for (ITestNGMethod method : entry.getValue()) { TestMethod tempMet = new TestMethod(method.getMethodName()); methods.add(tempMet); // log("method: " + method.getMethodName() + " added to methods"); // log(method.getMethodName() + " groups: " + Arrays.deepToString(method.getGroups())); // log(method.getMethodName() + " dep groups: " + // Arrays.deepToString(method.getGroupsDependedUpon())); for (String dependedUponMethod : method.getMethodsDependedUpon()) { tempMet.addMethod( dependedUponMethod.substring(dependedUponMethod.lastIndexOf(".") + 1)); // log("method: " + method.getMethodName() + " deps on " + // dependedUponMethod.substring(dependedUponMethod.lastIndexOf(".") + 1) + " added to // methods"); // log(method.getMethodName() + " depends upon " + // dependedUponMethod.substring(dependedUponMethod.lastIndexOf(".")+1)); // log("dep upon method: " + dependedUponMethod); // String[] tokens = dependedUponMethod.split("\\."); // log(Arrays.deepToString(tokens)); // log(method.getMethodName() + DEPENDS_UPON + tokens[tokens.length-2] + "." + // tokens[tokens.length-1]); } for (String dependedUponGroup : method.getGroupsDependedUpon()) { tempMet.addGroup(dependedUponGroup); // log(method.getMethodName() + DEPENDS_UPON + dependedUponGroup); // log("dep upon group: " + dependedUponGroup); } } } } for (ITestNGMethod method : failedMethods) { log("failed method: " + getClassAndMethodString(method)); for (String depMethod : method.getMethodsDependedUpon()) { log(" dep on: " + depMethod); } } for (ITestNGMethod method : failedConfigurations) { log("failed config: " + getClassAndMethodString(method)); for (String depMethod : method.getMethodsDependedUpon()) { log(" dep on: " + depMethod); } } for (ITestNGMethod method : skippedMethods) { log("skipped method: " + getClassAndMethodString(method)); for (String depMethod : method.getMethodsDependedUpon()) { log(" dep on: " + depMethod); } for (String depGroup : method.getGroupsDependedUpon()) { log(" dep on: " + depGroup); } } for (TestMethod method : methods) { // log("method: " + method.getName()); uniqueGroups.addAll(method.getGroupsDepUpon()); } }