private void resetObservers() { for (ExecutionObserver observer : observers) { observer.clear(); } }
protected void informObservers_finished(ExecutionResult result) { ExecutionTracer.disable(); try { for (ExecutionObserver observer : observers) { observer.testExecutionFinished(result, scope); } } finally { ExecutionTracer.enable(); } }
/** * Inform all observers that we are going to execute the input statement * * @param s * the statement to execute */ protected void informObservers_before(Statement s) { ExecutionTracer.disable(); try { for (ExecutionObserver observer : observers) { observer.beforeStatement(s, scope); } } finally { ExecutionTracer.enable(); } }
/** * Inform all observers that input statement has been executed * * @param s * the executed statement * @param exceptionThrown * the exception thrown when executing the statement, if any (can * be null) */ protected void informObservers_after(Statement s, Throwable exceptionThrown) { ExecutionTracer.disable(); try { for (ExecutionObserver observer : observers) { observer.afterStatement(s, scope, exceptionThrown); } } finally { ExecutionTracer.enable(); } }
@Override public void afterStatement(Statement statement, Scope scope, Throwable exception) { int numStatement = statement.getPosition(); VariableReference returnValue = statement.getReturnValue(); if (!returnValue.isPrimitive()) { // Only interested in primitive values return; } TestCase test = super.getCurrentTest(); if (test.getStatement(returnValue.getStPosition()) instanceof PrimitiveStatement<?>) { // Don't need to collect primitive statement values return; } try { Object object = statement.getReturnValue().getObject(scope); concreteValues.put(numStatement, object); } catch(CodeUnderTestException e) { // Ignore } }
ExecutionObserver.setCurrentTest(tc); MaxTestsStoppingCondition.testExecuted(); Runtime.getInstance().resetRuntime();