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;
 }
Ejemplo n.º 2
0
 /**
  * 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());
    }
  }