Java 类org.junit.runners.Suite.SuiteClasses 实例源码

项目:cloudera-framework    文件:CdhServer.java   
@SuppressWarnings({"rawtypes", "LoopStatementThatDoesntLoop"})
private boolean assertTestRunner(String testClass) {
  try {
    RunWith runWith = Class.forName(testClass).getAnnotation(RunWith.class);
    if (runWith == null) {
      throw new RuntimeException("Missing [@" + RunWith.class.getCanonicalName() + "(" + TestRunner.class.getCanonicalName()
        + ".class)] on class [" + testClass + "]");
    }
    if (runWith.value().equals(Suite.class)) {
      SuiteClasses suiteClasses = Class.forName(testClass).getAnnotation(SuiteClasses.class);
      for (Class suiteTestClass : suiteClasses.value()) {
        return assertTestRunner(suiteTestClass.getCanonicalName());
      }
    } else if (!runWith.value().equals(TestRunner.class)) {
      throw new RuntimeException("Unsupported run with [" + runWith.value().getCanonicalName() + "] on class [" + testClass + "]");
    }
  } catch (Exception exception) {
    String message = "The test [" + testClass + "] included a rule [" + getClass().getCanonicalName() + "] but did not include a [@"
      + RunWith.class.getCanonicalName() + "(" + TestRunner.class.getCanonicalName() + ".class)] class annotation";
    if (LOG.isErrorEnabled()) {
      LOG.error(message, exception);
    }
    throw new RuntimeException(message, exception);
  }
  return true;
}
项目:junit-converter    文件:SuiteRewritingStage.java   
/**
 * @see junitconverter.stages.TestConversionStage#convertClass(junitconverter.testcase.TestCaseClass)
 */
public void convertClass(TestCaseClass testCase)
{
    // This is a gigantic hack. We use a regex to search for classes/suites added to the suite.
    // We start our search at the beginning of the suite method
    List<String> lines = testCase.getLines().subList(testCase.getSuiteStartLine(), testCase.getSuiteEndLine() + 1);
    StringBuilder builder = new StringBuilder();
    builder.append('{');
    for (String line : lines)
    {
        Matcher m = p.matcher(line);
        if (m.find())
        {
            String testName = m.group(2);
            builder.append(testName).append(".class, "); //$NON-NLS-1$
        }
    }
    builder.append('}');
    codeEditor.addAnnotation(testCase, SuiteClasses.class, builder.toString());
    codeEditor.addAnnotation(testCase, RunWith.class, "Suite.class"); //$NON-NLS-1$
}
项目:parameterized-suite    文件:SuiteUtil.java   
/**
 * @see Suite#getAnnotatedClasses(Class)
 */
public static Class<?>[] getSuiteClasses(Class<?> klass) throws InitializationError {
    SuiteClasses annotation = klass.getAnnotation(SuiteClasses.class);
    if (annotation == null) {
        throw new InitializationError(String.format("class '%s' must have a SuiteClasses annotation", klass.getName()));
    }
    return annotation.value();
}
项目:metasfresh    文件:IntegrationTestListenersRegistry.java   
public boolean registerFromAnnotatedClass(Class<?> annotatedClass) throws InitializationError
{
    Util.assume(annotatedClass != null, "anntatedClass is null");
    if (registeredAnnotatedClasses.contains(annotatedClass))
    {
        return false;
    }

    final IntegrationTestListeners annListeners = annotatedClass.getAnnotation(IntegrationTestListeners.class);
    if (annListeners != null)
    {
        Class<?>[] listenerClasses = annListeners.value();
        if (listenerClasses == null || listenerClasses.length == 0)
        {
            throw new InitializationError("No listeners specified on " + annListeners + " for " + annotatedClass);
        }

        for (Class<?> listenerClass : listenerClasses)
            registerListenerClass(listenerClass);
    }

    registeredAnnotatedClasses.add(annotatedClass);

    final SuiteClasses annSuiteClasses = annotatedClass.getAnnotation(SuiteClasses.class);
    if (annSuiteClasses != null)
    {
        Class<?>[] suiteClasses = annSuiteClasses.value();
        if (suiteClasses != null)
        {
            for (Class<?> suiteClass : suiteClasses)
            {
                registerFromAnnotatedClass(suiteClass);
            }
        }
    }

    return true;
}
项目:pitest    文件:JUnit4SuiteFinder.java   
@Override
public List<Class<?>> apply(final Class<?> a) {
  final SuiteClasses annotation = a.getAnnotation(SuiteClasses.class);

  if ((annotation != null) && hasSuitableRunnner(a)) {
    return Arrays.asList(annotation.value());
  } else {
    return Collections.emptyList();
  }
}
项目:junit-converter    文件:SuiteAnnotationsImportingStage.java   
/**
 * @see junitconverter.stages.TestConversionStage#convertClass(junitconverter.testcase.TestCaseClass)
 */
public void convertClass(TestCaseClass testCase)
{
    codeEditor.importClass(testCase, Suite.class);
    codeEditor.importClass(testCase, RunWith.class);
    codeEditor.importClass(testCase, SuiteClasses.class); // FIXME Doesn't import it properly. Adds a $ instead of . between SUite and SuiteClasses
}