/*******************************************************************************
* Copyright (c) 2000, 2008 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.phpsrc.eclipse.pti.tools.phpunit.core;
import org.phpsrc.eclipse.pti.tools.phpunit.core.model.ITestCaseElement;
import org.phpsrc.eclipse.pti.tools.phpunit.core.model.ITestRunSession;
/**
* A test run listener that can be registered at
* {@link JUnitCore#addTestRunListener(TestRunListener)}.
* <p>
* A test run starts with the call to {@link #sessionStarted(ITestRunSession)}
* followed by calls to {@link #testCaseStarted(ITestCaseElement)} and
* {@link #testCaseFinished(ITestCaseElement)} for all test cases contained in
* the tree.
* </p>
* <p>
* A test run session is ended with the call to
* {@link #sessionFinished(ITestRunSession)}. After that call, no references
* must be kept to the session or any of the test cases or suites.
* </p>
*
* @since 3.3
*/
public abstract class TestRunListener {
/**
* A test run session has started. The test tree can be accessed through the
* session element.
* <p>
* Important: The implementor of this method must not keep a reference to
* the session element longer after
* {@link #sessionFinished(ITestRunSession)} has finished.
* </p>
*
* @param session
* the session that has just started.
*/
public void sessionStarted(ITestRunSession session) {
}
/**
* A test run session has finished. The test tree can be accessed through
* the session element.
*
* <p>
* Important: The implementor of this method must not keep the session
* element when the method is finished.
* </p>
*
* @param session
* the test
*/
public void sessionFinished(ITestRunSession session) {
}
/**
* A test case has started. The result can be accessed from the element.
* <p>
* Important: The implementor of this method must not keep a reference to
* the test case element after {@link #sessionFinished(ITestRunSession)} has
* finished.
* </p>
*
* @param testCaseElement
* the test that has started to run
*/
public void testCaseStarted(ITestCaseElement testCaseElement) {
}
/**
* A test case has ended. The result can be accessed from the element.
* <p>
* Important: The implementor of this method must not keep a reference to
* the test case element after {@link #sessionFinished(ITestRunSession)} has
* finished.
* </p>
*
* @param testCaseElement
* the test that has finished running
*/
public void testCaseFinished(ITestCaseElement testCaseElement) {
}
}