类org.junit.jupiter.api.extension.ReflectiveInvocationContext源码实例Demo

下面列出了怎么用org.junit.jupiter.api.extension.ReflectiveInvocationContext的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: allure-java   文件: AllureJunit5.java
protected void processFixture(final String type,
                              final Invocation<Void> invocation,
                              final ReflectiveInvocationContext<Method> invocationContext,
                              final ExtensionContext extensionContext) throws Throwable {
    final String uuid = UUID.randomUUID().toString();
    try {
        extensionContext.publishReportEntry(buildStartEvent(
                type,
                uuid,
                invocationContext.getExecutable()
        ));
        invocation.proceed();
        extensionContext.publishReportEntry(buildStopEvent(
                type,
                uuid
        ));
    } catch (Throwable throwable) {
        extensionContext.publishReportEntry(buildFailureEvent(
                type,
                uuid,
                throwable
        ));
        throw throwable;
    }
}
 
源代码2 项目: quickperf   文件: QuickPerfTestExtension.java
@Override
public void interceptTestMethod(  Invocation<Void> invocation
                                , ReflectiveInvocationContext<Method> invocationContext
                                , ExtensionContext extensionContext) throws Throwable {

    if (testExecutionContext.isQuickPerfDisabled()) {
        invocation.proceed();
        return;
    }

    if(SystemProperties.TEST_CODE_EXECUTING_IN_NEW_JVM.evaluate()) {
        executeTestMethodInNewJvmAndRecordPerformance(invocation, invocationContext);
        return;
    }

    JvmOrTestIssue jvmOrTestIssue =
            executeTestMethodAndRecordPerformance(invocation, invocationContext);

    SetOfAnnotationConfigs testAnnotationConfigs = quickPerfConfigs.getTestAnnotationConfigs();

    Collection<PerfIssuesToFormat> groupOfPerfIssuesToFormat
                = perfIssuesEvaluator.evaluatePerfIssuesIfNoJvmIssue(testAnnotationConfigs
                                                                   , testExecutionContext
                                                                   , jvmOrTestIssue);
    testExecutionContext.cleanResources();

    quickPerfReporter.report(jvmOrTestIssue
                           , groupOfPerfIssuesToFormat
                           , testExecutionContext);

}
 
源代码3 项目: quickperf   文件: QuickPerfTestExtension.java
private void executeTestMethodInNewJvmAndRecordPerformance(Invocation<Void> invocation, ReflectiveInvocationContext<Method> invocationContext) throws IllegalAccessException, InvocationTargetException {
    Object[] args = invocationContext.getArguments().toArray();
    Object target = invocationContext.getTarget().orElse(null);
    Method method = makeAccessible(invocationContext.getExecutable());
    invocation.skip();//skip the invocation as we directly invoke the test method

    performanceRecording.start(testExecutionContext);

    try {
        //directly invoke the method to lower the interaction between JUnit, other extensions and QuickPerf.
        method.invoke(target, args);
    } finally {
        performanceRecording.stop(testExecutionContext);
    }
}
 
源代码4 项目: quickperf   文件: QuickPerfTestExtension.java
private JvmOrTestIssue executeTestMethodAndRecordPerformance(Invocation<Void> invocation, ReflectiveInvocationContext<Method> invocationContext) {
    if (testExecutionContext.testExecutionUsesTwoJVMs()) {
        Method testMethod = invocationContext.getExecutable();
        JvmOrTestIssue jvmOrTestIssue = executeTestMethodInNewJwm(testMethod);
        tryToSkipInvocation(invocation); // because the test method is invoked directly inside the 'newJvmTestLauncher'
        return jvmOrTestIssue;
    }
    TestIssue testIssue = executeTestMethodAndRecordPerformanceInSameJvm(invocation);
    return JvmOrTestIssue.buildFrom(testIssue);
}
 
源代码5 项目: quarkus   文件: QuarkusTestExtension.java
@Override
public void interceptBeforeAllMethod(Invocation<Void> invocation, ReflectiveInvocationContext<Method> invocationContext,
        ExtensionContext extensionContext) throws Throwable {
    if (isNativeTest(extensionContext)) {
        invocation.proceed();
        return;
    }
    ensureStarted(extensionContext);
    if (failedBoot) {
        throwBootFailureException();
        return;
    }
    runExtensionMethod(invocationContext, extensionContext);
    invocation.skip();
}
 
源代码6 项目: quarkus   文件: QuarkusTestExtension.java
@Override
public <T> T interceptTestClassConstructor(Invocation<T> invocation,
        ReflectiveInvocationContext<Constructor<T>> invocationContext, ExtensionContext extensionContext) throws Throwable {
    if (isNativeTest(extensionContext)) {
        return invocation.proceed();
    }
    T result;
    ClassLoader old = Thread.currentThread().getContextClassLoader();
    Class<?> requiredTestClass = extensionContext.getRequiredTestClass();
    try {
        Thread.currentThread().setContextClassLoader(requiredTestClass.getClassLoader());
        result = invocation.proceed();
    } catch (NullPointerException e) {
        throw new RuntimeException(
                "When using constructor injection in a test, the only legal operation is to assign the constructor values to fields. Offending class is "
                        + requiredTestClass,
                e);
    } finally {
        Thread.currentThread().setContextClassLoader(old);
    }
    ExtensionState state = ensureStarted(extensionContext);
    if (failedBoot) {
        return result;
    }

    // We do this here as well, because when @TestInstance(Lifecycle.PER_CLASS) is used on a class,
    // interceptTestClassConstructor is called before beforeAll, meaning that the TCCL will not be set correctly
    // (for any test other than the first) unless this is done
    old = null;
    if (runningQuarkusApplication != null) {
        old = setCCL(runningQuarkusApplication.getClassLoader());
    }

    initTestState(extensionContext, state);
    if (old != null) {
        setCCL(old);
    }
    return result;
}
 
源代码7 项目: quarkus   文件: QuarkusTestExtension.java
@Override
public void interceptBeforeEachMethod(Invocation<Void> invocation, ReflectiveInvocationContext<Method> invocationContext,
        ExtensionContext extensionContext) throws Throwable {
    if (isNativeTest(extensionContext)) {
        invocation.proceed();
        return;
    }
    runExtensionMethod(invocationContext, extensionContext);
    invocation.skip();
}
 
源代码8 项目: quarkus   文件: QuarkusTestExtension.java
@Override
public void interceptTestMethod(Invocation<Void> invocation, ReflectiveInvocationContext<Method> invocationContext,
        ExtensionContext extensionContext) throws Throwable {
    if (isNativeTest(extensionContext)) {
        invocation.proceed();
        return;
    }
    runExtensionMethod(invocationContext, extensionContext);
    invocation.skip();
}
 
源代码9 项目: quarkus   文件: QuarkusTestExtension.java
@Override
public void interceptTestTemplateMethod(Invocation<Void> invocation, ReflectiveInvocationContext<Method> invocationContext,
        ExtensionContext extensionContext) throws Throwable {
    if (isNativeTest(extensionContext)) {
        invocation.proceed();
        return;
    }
    runExtensionMethod(invocationContext, extensionContext);
    invocation.skip();
}
 
源代码10 项目: quarkus   文件: QuarkusTestExtension.java
@Override
public <T> T interceptTestFactoryMethod(Invocation<T> invocation,
        ReflectiveInvocationContext<Method> invocationContext, ExtensionContext extensionContext) throws Throwable {
    if (isNativeTest(extensionContext)) {
        return invocation.proceed();
    }
    T result = (T) runExtensionMethod(invocationContext, extensionContext);
    invocation.skip();
    return result;
}
 
源代码11 项目: quarkus   文件: QuarkusTestExtension.java
@Override
public void interceptAfterEachMethod(Invocation<Void> invocation, ReflectiveInvocationContext<Method> invocationContext,
        ExtensionContext extensionContext) throws Throwable {
    if (isNativeTest(extensionContext)) {
        invocation.proceed();
        return;
    }
    runExtensionMethod(invocationContext, extensionContext);
    invocation.skip();
}
 
源代码12 项目: quarkus   文件: QuarkusTestExtension.java
@Override
public void interceptAfterAllMethod(Invocation<Void> invocation, ReflectiveInvocationContext<Method> invocationContext,
        ExtensionContext extensionContext) throws Throwable {
    if (isNativeTest(extensionContext)) {
        invocation.proceed();
        return;
    }
    runExtensionMethod(invocationContext, extensionContext);
    invocation.skip();
}
 
源代码13 项目: quarkus   文件: QuarkusUnitTest.java
@Override
public void interceptAfterEachMethod(Invocation<Void> invocation, ReflectiveInvocationContext<Method> invocationContext,
        ExtensionContext extensionContext) throws Throwable {
    if (assertException == null) {
        runExtensionMethod(invocationContext);
        invocation.skip();
    } else {
        invocation.proceed();
    }
}
 
源代码14 项目: quarkus   文件: QuarkusUnitTest.java
@Override
public void interceptAfterAllMethod(Invocation<Void> invocation, ReflectiveInvocationContext<Method> invocationContext,
        ExtensionContext extensionContext) throws Throwable {
    if (assertException == null) {
        runExtensionMethod(invocationContext);
    }
    invocation.skip();
}
 
源代码15 项目: quarkus   文件: QuarkusUnitTest.java
@Override
public void interceptTestMethod(Invocation<Void> invocation, ReflectiveInvocationContext<Method> invocationContext,
        ExtensionContext extensionContext) throws Throwable {
    if (assertException == null) {
        runExtensionMethod(invocationContext);
    }
    invocation.skip();
}
 
源代码16 项目: quarkus   文件: QuarkusUnitTest.java
@Override
public void interceptTestTemplateMethod(Invocation<Void> invocation, ReflectiveInvocationContext<Method> invocationContext,
        ExtensionContext extensionContext) throws Throwable {
    if (assertException == null) {
        runExtensionMethod(invocationContext);
    }
    invocation.skip();
}
 
源代码17 项目: allure-java   文件: AllureJunit5.java
@Override
public void interceptBeforeAllMethod(
        final Invocation<Void> invocation,
        final ReflectiveInvocationContext<Method> invocationContext,
        final ExtensionContext extensionContext) throws Throwable {
    processFixture(PREPARE, invocation, invocationContext, extensionContext);
}
 
源代码18 项目: allure-java   文件: AllureJunit5.java
@Override
public void interceptAfterAllMethod(
        final Invocation<Void> invocation,
        final ReflectiveInvocationContext<Method> invocationContext,
        final ExtensionContext extensionContext) throws Throwable {
    processFixture(TEAR_DOWN, invocation, invocationContext, extensionContext);
}
 
源代码19 项目: allure-java   文件: AllureJunit5.java
@Override
public void interceptBeforeEachMethod(
        final Invocation<Void> invocation,
        final ReflectiveInvocationContext<Method> invocationContext,
        final ExtensionContext extensionContext) throws Throwable {
    processFixture(PREPARE, invocation, invocationContext, extensionContext);
}
 
源代码20 项目: allure-java   文件: AllureJunit5.java
@Override
public void interceptAfterEachMethod(
        final Invocation<Void> invocation,
        final ReflectiveInvocationContext<Method> invocationContext,
        final ExtensionContext extensionContext) throws Throwable {
    processFixture(TEAR_DOWN, invocation, invocationContext, extensionContext);
}
 
源代码21 项目: taskana   文件: JaasExtension.java
@Override
public <T> T interceptTestClassConstructor(
    Invocation<T> invocation,
    ReflectiveInvocationContext<Constructor<T>> invocationContext,
    ExtensionContext extensionContext) {
  return extractAccessIdAndPerformInvocation(invocation, invocationContext.getExecutable());
}
 
源代码22 项目: taskana   文件: JaasExtension.java
@Override
public void interceptBeforeAllMethod(
    Invocation<Void> invocation,
    ReflectiveInvocationContext<Method> invocationContext,
    ExtensionContext extensionContext) {
  extractAccessIdAndPerformInvocation(invocation, invocationContext.getExecutable());
}
 
源代码23 项目: taskana   文件: JaasExtension.java
@Override
public void interceptBeforeEachMethod(
    Invocation<Void> invocation,
    ReflectiveInvocationContext<Method> invocationContext,
    ExtensionContext extensionContext) {
  extractAccessIdAndPerformInvocation(invocation, invocationContext.getExecutable());
}
 
源代码24 项目: taskana   文件: JaasExtension.java
@Override
public void interceptTestMethod(
    Invocation<Void> invocation,
    ReflectiveInvocationContext<Method> invocationContext,
    ExtensionContext extensionContext) {
  if (isAnnotated(invocationContext.getExecutable(), WithAccessIds.class)) {
    throw new JUnitException("Please use @TestTemplate instead of @Test for multiple accessIds");
  }
  extractAccessIdAndPerformInvocation(invocation, invocationContext.getExecutable());
}
 
源代码25 项目: taskana   文件: JaasExtension.java
@Override
public void interceptTestTemplateMethod(
    Invocation<Void> invocation,
    ReflectiveInvocationContext<Method> invocationContext,
    ExtensionContext extensionContext) {
  WithAccessId accessId =
      getStore(extensionContext).get(ACCESS_IDS_STORE_KEY, WithAccessId.class);
  performInvocationWithAccessId(invocation, accessId);
}
 
源代码26 项目: taskana   文件: JaasExtension.java
@Override
public void interceptAfterEachMethod(
    Invocation<Void> invocation,
    ReflectiveInvocationContext<Method> invocationContext,
    ExtensionContext extensionContext) {
  extractAccessIdAndPerformInvocation(invocation, invocationContext.getExecutable());
}
 
源代码27 项目: taskana   文件: JaasExtension.java
@Override
public void interceptAfterAllMethod(
    Invocation<Void> invocation,
    ReflectiveInvocationContext<Method> invocationContext,
    ExtensionContext extensionContext) {
  extractAccessIdAndPerformInvocation(invocation, invocationContext.getExecutable());
}
 
源代码28 项目: quarkus   文件: QuarkusProdModeTest.java
@Override
public void interceptBeforeAllMethod(Invocation<Void> invocation, ReflectiveInvocationContext<Method> invocationContext,
        ExtensionContext extensionContext) throws Throwable {
    doIntercept(invocation);
}
 
源代码29 项目: quarkus   文件: QuarkusProdModeTest.java
@Override
public void interceptBeforeEachMethod(Invocation<Void> invocation, ReflectiveInvocationContext<Method> invocationContext,
        ExtensionContext extensionContext) throws Throwable {
    doIntercept(invocation);
}
 
源代码30 项目: quarkus   文件: QuarkusProdModeTest.java
@Override
public void interceptTestMethod(Invocation<Void> invocation, ReflectiveInvocationContext<Method> invocationContext,
        ExtensionContext extensionContext) throws Throwable {
    doIntercept(invocation);
}
 
 类所在包
 类方法
 同包方法