Java 类org.junit.runners.model.FrameworkMethod 实例源码
项目:junit-easy-tools
文件:PotentialAssignments.java
Stream<Assignment> allPossible() throws Throwable {
final List<FrameworkMethod> annotatedMethods = testClass.getAnnotatedMethods(DataProducer.class);
Stream<Assignment> methodAssignments = Stream.empty();
for (FrameworkMethod annotatedMethod : annotatedMethods) {
final Type methodReturnType = getMethodGenericReturnType(annotatedMethod.getMethod());
methodAssignments = Stream.concat(methodAssignments, methodToStreamOfResults(annotatedMethod)
.map(value -> new MethodResultAssignment(value, methodReturnType, annotatedMethod)));
}
final List<FrameworkField> annotatedFields = testClass.getAnnotatedFields(DataProducer.class);
final Stream<Assignment> fieldsAssignments = annotatedFields.stream()
.map(FieldAssignment::new);
return Stream.concat(fieldsAssignments, methodAssignments);
}
项目:Reer
文件:RedirectStdOutAndErr.java
public Statement apply(final Statement base, FrameworkMethod method, Object target) {
return new Statement() {
@Override
public void evaluate() throws Throwable {
originalStdOut = System.out;
originalStdErr = System.err;
stdOutRouter.setOut(originalStdOut);
stdErrRouter.setOut(originalStdErr);
try {
System.setOut(stdOutPrintStream);
System.setErr(stdErrPrintStream);
base.evaluate();
} finally {
System.setOut(originalStdOut);
System.setErr(originalStdErr);
stdOutRouter = null;
stdErrRouter = null;
stdOutPrintStream = null;
stdErrPrintStream = null;
stdoutContent = null;
stderrContent = null;
}
}
};
}
项目:easy-test
文件:EasyJUnit4.java
protected Statement methodBlock(FrameworkMethod method) {
Object test;
try {
test = new ReflectiveCallable() {
@Override
protected Object runReflectiveCall() throws Throwable {
return createTest();
}
}.run();
} catch (Throwable e) {
return new Fail(e);
}
Statement statement = methodInvoker(method, test);
statement = possiblyExpectingExceptions(method, test, statement);
statement = withPotentialTimeout(method, test, statement);
statement = withBefores(method, test, statement);
statement = withAfters(method, test, statement);
statement = withRules(method, test, statement);
return statement;
}
项目:io-comparison
文件:OrderedRunner.java
@Override
protected List<FrameworkMethod> computeTestMethods() {
List<FrameworkMethod> list = super.computeTestMethods();
Collections.sort(list, new Comparator<FrameworkMethod>() {
@Override
public int compare(FrameworkMethod f1, FrameworkMethod f2) {
Order o1 = f1.getAnnotation(Order.class);
Order o2 = f2.getAnnotation(Order.class);
if (o1 == null) {
if (o2 != null) { // o1 == null, o2 != null
return 1;
} else { // o1 == null, o2 == null
return f1.getName().compareTo(f2.getName());
}
} else {
if (o2 != null) {//o1 != null, o2 != null
return o1.value() - o2.value();
} else { //o1 != null, o2 == null
return -1;
}
}
}
});
return list;
}
项目:oscm
文件:OrderedRunner.java
@Override
protected List<FrameworkMethod> computeTestMethods() {
List<FrameworkMethod> list = super.computeTestMethods();
List<FrameworkMethod> copy = new ArrayList<>(list);
Collections.sort(copy, new Comparator<FrameworkMethod>() {
@Override
public int compare(FrameworkMethod f1, FrameworkMethod f2) {
Order o1 = f1.getAnnotation(Order.class);
Order o2 = f2.getAnnotation(Order.class);
if(o1 == null || o2 == null) {
return -1;
}
return o1.order() - o2.order();
}
});
return copy;
}
项目:spockito
文件:Spockito.java
private static List<Runner> createRunners(final Class<?> clazz) throws InitializationError {
final ValueConverter defaultValueConverter = getDefaultValueConverter(clazz);
final List<Runner> runners = new ArrayList<>();
final Table classWideTable = classWideTableOrNull(clazz);
if (classWideTable != null) {
for (final TableRow row : classWideTable) {
runners.add(new SingleRowMultiTestRunner(clazz, row, defaultValueConverter));
}
} else {
for (final FrameworkMethod testMethod : new TestClass(clazz).getAnnotatedMethods(Test.class)) {
final Spockito.UseValueConverter useValueConverter = testMethod.getAnnotation(Spockito.UseValueConverter.class);
final ValueConverter methodValueConverter = Spockito.getValueConverter(useValueConverter, defaultValueConverter);
runners.add(new SingleTestMultiRowRunner(clazz, testMethod, methodValueConverter));
}
}
return runners;
}
项目:tubik
文件:OrderedRunner.java
@Override
protected List<FrameworkMethod> computeTestMethods() {
List<FrameworkMethod> list = super.computeTestMethods();
List<FrameworkMethod> copy = new ArrayList<FrameworkMethod>(list);
Collections.sort(copy, new Comparator<FrameworkMethod>() {
@Override
public int compare(FrameworkMethod f1, FrameworkMethod f2) {
Order o1 = f1.getAnnotation(Order.class);
Order o2 = f2.getAnnotation(Order.class);
if (o1 == null || o2 == null) {
return -1;
}
return o1.order() - o2.order();
}
});
return copy;
}
项目:morf
文件:InjectMembersRule.java
/**
* @see org.junit.rules.MethodRule#apply(org.junit.runners.model.Statement, org.junit.runners.model.FrameworkMethod, java.lang.Object)
*/
@Override
public Statement apply(final Statement base, final FrameworkMethod method, final Object target) {
return new Statement() {
@Override
public void evaluate() throws Throwable {
final List<Module> moduleWithTarget = new ArrayList<>(Arrays.asList(modules));
if (target instanceof Module) {
moduleWithTarget.add((Module) target);
}
Guice.createInjector(moduleWithTarget).injectMembers(target);
try {
base.evaluate();
} finally {
new ThreadSafeMockingProgress().reset();
}
}
};
}
项目:pact-spring-mvc
文件:PactTestRunner.java
@Override
protected Statement methodInvoker(final FrameworkMethod method, final Object test) {
return new Statement() {
@Override
public void evaluate() throws Throwable {
PactFrameworkMethod pactFrameworkMethod = (PactFrameworkMethod) method;
if (pactFrameworkMethod.shouldExclude()) {
LOG.warn("Test has been excluded. Test will show as passed but was *NOT* run.");
return;
}
if (pactFrameworkMethod.getWorkflow() != null) {
setUpProviderState(test, pactFrameworkMethod.getWorkflow());
pactFrameworkMethod.invokeExplosively(test, pactFrameworkMethod.getWorkflow().getInteractions());
} else {
setUpProviderState(test, pactFrameworkMethod.getInteraction());
pactFrameworkMethod.invokeExplosively(test, Collections.singletonList(pactFrameworkMethod.getInteraction()));
}
}
};
}
项目:Bytecoder
文件:BytecoderUnitTestRunner.java
public BytecoderUnitTestRunner(Class aClass) throws InitializationError {
super(aClass);
testClass = new TestClass(aClass);
testMethods = new ArrayList<>();
Method[] classMethods = aClass.getDeclaredMethods();
for (Method classMethod : classMethods) {
Class retClass = classMethod.getReturnType();
int length = classMethod.getParameterTypes().length;
int modifiers = classMethod.getModifiers();
if (retClass == null || length != 0 || Modifier.isStatic(modifiers)
|| !Modifier.isPublic(modifiers) || Modifier.isInterface(modifiers)
|| Modifier.isAbstract(modifiers)) {
continue;
}
String methodName = classMethod.getName();
if (methodName.toUpperCase().startsWith("TEST")
|| classMethod.getAnnotation(Test.class) != null) {
testMethods.add(new FrameworkMethod(classMethod));
}
if (classMethod.getAnnotation(Ignore.class) != null) {
testMethods.remove(classMethod);
}
}
}
项目:cortado
文件:OrderedJUnit4TestRunner.java
@Override
protected List<FrameworkMethod> computeTestMethods() {
final List<FrameworkMethod> unordered = super.computeTestMethods();
List<FrameworkMethod> otherMethods = new ArrayList<>(unordered);
List<FrameworkMethod> orderedMethods = new ArrayList<>();
// extracting methods annotated ofRes Order
for (int i = 0; i < otherMethods.size(); i++) {
FrameworkMethod frameworkMethod = otherMethods.get(i);
Order order = frameworkMethod.getAnnotation(Order.class);
if (order != null) {
orderedMethods.add(frameworkMethod);
otherMethods.remove(i--);
}
}
// sorting ordered methods
Collections.sort(orderedMethods, new Comparator<FrameworkMethod>() {
@Override
public int compare(FrameworkMethod f1, FrameworkMethod f2) {
return f1.getAnnotation(Order.class).value() -
f2.getAnnotation(Order.class).value();
}
});
// appending other methods to ordered methods
orderedMethods.addAll(otherMethods);
return Collections.unmodifiableList(orderedMethods);
}
项目:junit-easy-tools
文件:TestObject.java
Object createTestObject() throws Exception {
List<FrameworkMethod> annotatedMethods = testClass.getAnnotatedMethods(TestFactory.class);
if (!annotatedMethods.isEmpty()) {
Method factoryMethod = annotatedMethods.get(0).getMethod();
validateFactoryMethod(factoryMethod);
return factoryMethod.invoke(null);
}
return testClass.getOnlyConstructor().newInstance();
}
项目:junit-easy-tools
文件:PotentialAssignments.java
private static Stream<?> methodToStreamOfResults(FrameworkMethod annotatedMethod) {
try {
return ((Collection<?>) annotatedMethod.invokeExplosively(null)).stream();
} catch (Throwable throwable) {
throw new IllegalArgumentException(throwable);
}
}
项目:junit-easy-tools
文件:JUnitEasyTools.java
@Override
protected void validateTestMethods(List<Throwable> errors) {
List<FrameworkMethod> annotatedMethods = getTestClass().getAnnotatedMethods(Test.class);
for (FrameworkMethod annotatedMethod : annotatedMethods) {
annotatedMethod.validatePublicVoid(false, errors);
}
}
项目:ArchUnit
文件:ArchUnitRunner.java
private Collection<ArchTestExecution> findArchRuleMethods() {
List<ArchTestExecution> result = new ArrayList<>();
for (FrameworkMethod testMethod : getTestClass().getAnnotatedMethods(ArchTest.class)) {
result.add(new ArchTestMethodExecution(getTestClass().getJavaClass(), testMethod.getMethod(), false));
}
return result;
}
项目:mbed-cloud-sdk-java
文件:ExampleRunner.java
@Override
protected List<FrameworkMethod> computeTestMethods() {
List<FrameworkMethod> list = getTestClass().getAnnotatedMethods(Test.class);
List<FrameworkMethod> list2 = getTestClass().getAnnotatedMethods(Example.class);
if (list == null || list.isEmpty()) {
return list2;
}
if (list2 == null || list2.isEmpty()) {
return list;
}
list2.addAll(list);
return list2;
}
项目:junit-easy-tools
文件:JUnitEasyToolsValidationTest.java
@Test
public void shouldThrowExceptionOnNoDataProducer() throws Throwable {
Method testMethod = NoDataProducer.class.getMethod("a", String.class);
FrameworkMethod method = new FrameworkMethod(testMethod);
FrameworkMethod spyMethod = spy(method);
when(spyMethod.getAnnotation(Ignore.class)).thenReturn(null);
assertThatExceptionOfType(InitializationError.class).isThrownBy(() ->
new JUnitEasyTools(NoDataProducer.class).methodBlock(method).evaluate());
}
项目:Reer
文件:TestResources.java
public Statement apply(Statement base, final FrameworkMethod method, Object target) {
final Statement statement = resources.apply(base, method, target);
return new Statement() {
@Override
public void evaluate() throws Throwable {
String className = method.getMethod().getDeclaringClass().getSimpleName();
maybeCopy(String.format("%s/shared", className));
maybeCopy(String.format("%s/%s", className, method.getName()));
for (String extraResource : extraResources) {
maybeCopy(extraResource);
}
statement.evaluate();
}
};
}
项目:firebase-admin-java
文件:MockitoTestRule.java
@Override
public Statement apply(final Statement base, FrameworkMethod method, final Object target) {
return new Statement() {
@Override
public void evaluate() throws Throwable {
MockitoAnnotations.initMocks(target);
try {
base.evaluate();
} finally {
Mockito.validateMockitoUsage();
}
}
};
}
项目:n4js
文件:XtextParametrizedRunner.java
private FrameworkMethod getAnnotatedPublicStaticMethod(Class<? extends Annotation> anno) {
List<FrameworkMethod> methods = getTestClass().getAnnotatedMethods(anno);
for (FrameworkMethod each : methods) {
if (each.isStatic() && each.isPublic()) {
return each;
}
}
return null;
}
项目:n4js
文件:XtextParametrizedRunner.java
/**
* Implements behavior from: org.junit.runners.Parameterized
*/
private Exception parametersMethodReturnedWrongType(FrameworkMethod parametersMethod) throws Exception {
String className = getTestClass().getName();
String message = MessageFormat.format("{0}.{1}() must return an Iterable of arrays.", className,
parametersMethod.getName());
return new Exception(message);
}
项目:n4js
文件:XtextParametrizedRunner.java
private Exception parametersProviderMethodReturnedWrongType(FrameworkMethod parametersMethod) throws Exception {
String className = getTestClass().getName();
String message = MessageFormat.format("{0}.{1}() must return an Provider for an Iterable of arrays.",
className,
parametersMethod.getName());
return new Exception(message);
}
项目:n4js
文件:XtextParametrizedRunner.java
private Exception unexpectedArrayElement() throws Exception {
FrameworkMethod method = getParametersMethod();
if (method != null) {
return parametersMethodReturnedWrongType(method);
}
return parametersProviderMethodReturnedWrongType(getParametersProviderMethod());
}
项目:easy-test
文件:EasyJUnit4.java
private Statement withRules(FrameworkMethod method, Object target,
Statement statement) {
List<TestRule> testRules = getTestRules(target);
Statement result = statement;
result = withMethodRules(method, testRules, target, result);
result = withTestRules(method, testRules, result);
return result;
}
项目:dockerunit
文件:DockerUnitRunner.java
private void validateNoOrOneServiceContextArg(FrameworkMethod testMethod, List<Throwable> errors) {
if (testMethod.getMethod().getParameterCount() > 0
&& !testMethod.getMethod().getParameterTypes()[0].isAssignableFrom(ServiceContext.class)) {
errors.add(new Exception("Test method " + testMethod.getName()
+ "() must have either zero args or one arg of type " + ServiceContext.class.getName()));
}
}
项目:testee.fi
文件:TestEEfi.java
@Override
protected Statement withBefores(
final FrameworkMethod method,
final Object target,
final Statement statement
) {
createInstanceFor(method, target);
return super.withBefores(method, target, statement);
}
项目:testee.fi
文件:TestEEfi.java
private synchronized void createInstanceFor(final FrameworkMethod method, final Object target) {
final String instanceId = target.getClass().getName()
+ ":"
+ method.getMethod().toString()
+ ":"
+ System.identityHashCode(target);
final TestSetup.TestInstance context = testSetup.prepareTestInstance(instanceId, target, method.getMethod());
instances.put(method, context);
}
项目:testee.fi
文件:TestEEfi.java
@Override
protected void runChild(FrameworkMethod method, RunNotifier notifier) {
try {
super.runChild(method, notifier);
} finally {
shutdownInstanceFor(method);
}
}
项目:JUnitWithParams
文件:WithParamsRule.java
ParameterizedStatement(final Set<String> executedTests, final HashMap<String, String> paramsMap,
final FrameworkMethod method, final Statement base, final ErrorCollector errorCollector,
HashSet<String> usedParams) {
mMethod = method;
mBase = base;
this.mExecutedTests = executedTests;
this.mParamsMap = paramsMap;
this.errorCollector = errorCollector;
this.usedParams = usedParams;
}
项目:io-comparison
文件:FocusRunner.java
@Override
protected List<FrameworkMethod> getChildren() {
List<FrameworkMethod> tests = super.getChildren();
List<FrameworkMethod> focuses = getTestClass().getAnnotatedMethods(Focus.class);
focuses.retainAll(tests);
if (focuses.isEmpty()) {
exceptEnabled = false;
return tests;
} else {
exceptEnabled = true;
return focuses;
}
}
项目:shabdiz
文件:ExperimentRunner.java
private List<Description> getMethodDescriptions(final Runner runner) {
final String displayName = runner.getDescription().getDisplayName();
final List<FrameworkMethod> methods = getTestClass().getAnnotatedMethods(Test.class);
List<Description> descriptions = new ArrayList<Description>();
for (FrameworkMethod method : methods) {
final Description description = Description.createTestDescription(getTestClass().getJavaClass(), method.getName() + displayName, method.getAnnotations());
descriptions.add(description);
}
return descriptions;
}
项目:shabdiz
文件:ParallelParameterized.java
private FrameworkMethod getHostProviderMethodByName(final String host_provider_name) {
for (FrameworkMethod provider : getTestClass().getAnnotatedMethods(HostProvider.class)) {
if (provider.getAnnotation(HostProvider.class).name().equals(host_provider_name)) { return provider; }
}
return null;
}
项目:shabdiz
文件:ParallelParameterized.java
private List<Description> getMethodDescriptions(final Runner runner) {
final String displayName = runner.getDescription().getDisplayName();
final List<FrameworkMethod> methods = getTestClass().getAnnotatedMethods(Test.class);
List<Description> descriptions = new ArrayList<Description>();
for (FrameworkMethod method : methods) {
final Description description = Description.createTestDescription(getTestClass().getJavaClass(), method.getName() + displayName, method.getAnnotations());
descriptions.add(description);
}
return descriptions;
}
项目:java-red
文件:RedTestRunner.java
@Override
protected void validateTestMethods(List<Throwable> errors) {
List<FrameworkMethod> methods = getTestClass().getAnnotatedMethods(Test.class);
for (FrameworkMethod method : methods) {
method.validatePublicVoid(false, errors);
if (!isNormalTest(method) && !isAsyncTest(method)) {
errors.add(new Exception("Method " + method.getName() + " can either have no parameters, or" +
"one AsyncTest parameter"));
}
}
}
项目:Rubus
文件:OrderedTestRunner.java
@Override
protected List<FrameworkMethod> computeTestMethods() {
// get all methods to be tested
List<FrameworkMethod> toSort = super.computeTestMethods();
if (toSort.isEmpty())
return toSort;
// a map containing <line_number, method>
final Map<Integer, FrameworkMethod> testMethods = new TreeMap<Integer, FrameworkMethod> ();
// check that all methods here are declared in the same class, we don't
// deal with test methods from superclasses that haven't been overridden
Class<?> clazz = getDeclaringClass(toSort);
if (clazz == null) {
// fail explicitly
System.err
.println("OrderedTestRunner can only run test classes that"
+ " don't have test methods inherited from superclasses");
return Collections.emptyList();
}
// use Javassist to figure out line numbers for methods
ClassPool pool = ClassPool.getDefault();
try {
CtClass cc = pool.get(clazz.getName());
// all methods in toSort are declared in the same class, we checked
for (FrameworkMethod m : toSort) {
String methodName = m.getName();
CtMethod method = cc.getDeclaredMethod(methodName);
testMethods.put(method.getMethodInfo().getLineNumber(0), m);
}
} catch (NotFoundException e) {
e.printStackTrace();
}
return new ArrayList<FrameworkMethod>(testMethods.values());
}
项目:Rubus
文件:OrderedTestRunner.java
private Class<?> getDeclaringClass(List<FrameworkMethod> methods) {
// methods can't be empty, it's been checked
Class<?> clazz = methods.get(0).getMethod().getDeclaringClass();
for (int i = 1; i < methods.size(); i++) {
if (!methods.get(i).getMethod().getDeclaringClass().equals(clazz)) {
// they must be all in the same class
return null;
}
}
return clazz;
}
项目:ZooKeeper
文件:ZKTestCase.java
@Override
public void starting(FrameworkMethod method) {
testName = method.getName();
// ZOOKEEPER-2693 disables all 4lw by default.
// Here we enable the 4lw which ZooKeeper tests depends.
System.setProperty("zookeeper.4lw.commands.whitelist", "*");
LOG.info("STARTING " + testName);
}
项目:ArchUnit
文件:ArchTestMethodExecution.java
private void executeTestMethod(JavaClasses classes) throws Throwable {
if (!Arrays.equals(testMethod.getParameterTypes(), new Class<?>[]{JavaClasses.class})) {
throw new IllegalArgumentException(String.format(
"Methods annotated with @%s must have exactly one parameter of type %s",
ArchTest.class.getSimpleName(), JavaClasses.class.getSimpleName()));
}
new FrameworkMethod(testMethod).invokeExplosively(testClass.newInstance(), classes);
}
项目:spockito
文件:AbstractSpockitoTestRunner.java
@Override
protected Description describeChild(final FrameworkMethod method) {
final Spockito.Name name = Spockito.nameAnnotationOrNull(method.getMethod());
if (name != null && name.shortFormat()) {
return Description.createSuiteDescription(testName(method), method.getAnnotations());
} else {
return super.describeChild(method);
}
}
项目:spockito
文件:SingleTestMultiRowRunner.java
@Override
protected String testName(final FrameworkMethod method) {
if (method instanceof UnrolledTestMethod) {
return method.getName() + Spockito.getName(method.getMethod(), ((UnrolledTestMethod)method).getTableRow());
}
return super.testName(method);
}