/** * Dynamically loads an instance of a test runner. * * @return A Initialized TestRunner * * @throws IllegalStateException * if multiple TestRunners found in classpath. */ public static TestRunner getTestRunner() { return getTestRunner(SecurityActions.getThreadContextClassLoader()); }
/** * Dynamically loads an instance of a test runner. * * @return A Initialized TestRunner * * @throws IllegalStateException * if multiple TestRunners found in classpath. */ public static TestRunner getTestRunner() { return getTestRunner(SecurityActions.getThreadContextClassLoader()); }
public void executeTest(HttpServletResponse response, String outputMode, String className, String methodName) throws ClassNotFoundException, IOException { Class<?> testClass = SecurityActions.getThreadContextClassLoader().loadClass(className); TestRunner runner = TestRunners.getTestRunner(); TestResult testResult = runner.execute(testClass, methodName); if (OUTPUT_MODE_SERIALIZED.equalsIgnoreCase(outputMode)) { writeObject(testResult, response); } else { // TODO: implement a html view of the result response.setContentType("text/html"); response.setStatus(HttpServletResponse.SC_OK); PrintWriter writer = response.getWriter(); writer.write("<html>\n"); writer.write("<head><title>TCK Report</title></head>\n"); writer.write("<body>\n"); writer.write("<h2>Configuration</h2>\n"); writer.write("<table>\n"); writer.write("<tr>\n"); writer.write("<td><b>Method</b></td><td><b>Status</b></td>\n"); writer.write("</tr>\n"); writer.write("</table>\n"); writer.write("<h2>Tests</h2>\n"); writer.write("<table>\n"); writer.write("<tr>\n"); writer.write("<td><b>Method</b></td><td><b>Status</b></td>\n"); writer.write("</tr>\n"); writer.write("</table>\n"); writer.write("</body>\n"); } }
private TestResult runTestMethodInternal(String className, String methodName, Map<String, String> protocolProps) { currentCall.set(className + methodName); TestResult result = new TestResult(); try { TestRunner runner = mockTestRunner; if (runner == null) { runner = TestRunners.getTestRunner(getClass().getClassLoader()); } log.fine("Load test class: " + className); Class<?> testClass = testClassLoader.loadTestClass(className); log.fine("Test class loaded from: " + testClass.getClassLoader()); log.fine("Execute: " + className + "." + methodName); result = doRunTestMethod(runner, testClass, methodName, protocolProps); } catch (Throwable th) { result.setStatus(Status.FAILED); result.setEnd(System.currentTimeMillis()); result.setThrowable(th); } finally { log.fine("Result: " + result); if (result.getStatus() == Status.FAILED) { log.log(Level.SEVERE, "Failed: " + className + "." + methodName, result.getThrowable()); } } return result; }