下面列出了怎么用org.testng.IHookCallBack的API类实例代码及写法,或者点击链接到github查看源代码。
@Override
public void run(IHookCallBack hookCallBack, ITestResult testResult) {
TestExecutionContext testExecutionContext = buildTestExecutionContext(testResult);
if(testExecutionContext.isQuickPerfDisabled()) {
hookCallBack.runTestMethod(testResult);
return;
}
if(SystemProperties.TEST_CODE_EXECUTING_IN_NEW_JVM.evaluate()) {
executeTestMethodInNewJvmAndRecordPerformance(testResult, testExecutionContext);
return;
}
JvmOrTestIssue jvmOrTestIssue =
executeTestMethodAndRecordPerformance(hookCallBack, testResult, testExecutionContext);
SetOfAnnotationConfigs testAnnotationConfigs = quickPerfConfigs.getTestAnnotationConfigs();
Collection<PerfIssuesToFormat> groupOfPerfIssuesToFormat = perfIssuesEvaluator.evaluatePerfIssuesIfNoJvmIssue(testAnnotationConfigs
, testExecutionContext
, jvmOrTestIssue);
testExecutionContext.cleanResources();
try {
quickPerfReporter.report(jvmOrTestIssue, groupOfPerfIssuesToFormat, testExecutionContext);
} catch (Throwable throwable) {
testResult.setThrowable(throwable);
testResult.setStatus(ITestResult.FAILURE);
}
}
private JvmOrTestIssue executeTestMethodAndRecordPerformance(IHookCallBack hookCallBack
, ITestResult testResult
, TestExecutionContext testExecutionContext) {
if (testExecutionContext.testExecutionUsesTwoJVMs()) {
Method testMethod = extractTestMethod(testResult);
return executeTestMethodInNewJwm(testMethod, testExecutionContext);
}
TestIssue testIssue = executeTestMethodAndRecordPerformanceInSameJvm(hookCallBack, testResult, testExecutionContext);
return JvmOrTestIssue.buildFrom(testIssue);
}
private TestIssue executeTestMethodAndRecordPerformanceInSameJvm(IHookCallBack hookCallBack, ITestResult testResult, TestExecutionContext testExecutionContext) {
performanceRecording.start(testExecutionContext);
try {
hookCallBack.runTestMethod(testResult);
return TestIssue.NONE;
} catch (Throwable throwable) {
return TestIssue.buildFrom(throwable);
} finally {
performanceRecording.stop(testExecutionContext);
}
}
/**
* Delegates to the {@link IHookCallBack#runTestMethod(ITestResult) test
* method} in the supplied {@code callback} to execute the actual test
* and then tracks the exception thrown during test execution, if any.
*
* @see org.testng.IHookable#run(org.testng.IHookCallBack,
* org.testng.ITestResult)
*/
@Override
public void run(IHookCallBack callBack, ITestResult testResult) {
callBack.runTestMethod(testResult);
Throwable testResultException = testResult.getThrowable();
if (testResultException instanceof InvocationTargetException) {
testResultException = ((InvocationTargetException) testResultException).getCause();
}
this.testException = testResultException;
}
@Override
public void run(IHookCallBack callBack, ITestResult testResult) {
this.method = testResult.getMethod().getMethodName();
super.run(callBack, testResult);
}
@Override
public void run(IHookCallBack callBack, ITestResult testResult) {
this.method = testResult.getMethod().getMethodName();
super.run(callBack, testResult);
}
public void run(IHookCallBack hookCallBack) {
}
public void run(IHookCallBack hookCallBack) {
}
@Override
public void run(IHookCallBack callBack, ITestResult testResult) {
this.method = testResult.getMethod().getMethodName();
super.run(callBack, testResult);
}