/* * Copyright 2010 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.gradle.api.tasks.testing; // todo: consider multithreading/multiprocess issues // Teamcity has the concept of a "wave" of messages // where each thread/process uses a unique wave id /** * Interface for listening to test execution. The intent is to be * framework agnostic. Currently this interface can support feedback * from JUnit and TestNG tests. */ public interface TestListener { /** * Called before a test suite is started. * @param suite The suite whose tests are about to be executed. */ void beforeSuite(TestDescriptor suite); /** * Called after a test suite is finished. * @param suite The suite whose tests have finished being executed. * @param result The aggregate result for the suite. */ void afterSuite(TestDescriptor suite, TestResult result); /** * Called before an atomic test is started. * @param testDescriptor The test which is about to be executed. */ void beforeTest(TestDescriptor testDescriptor); /** * Called after an atomic test is finished. * @param testDescriptor The test which has finished executing. * @param result The test result. */ void afterTest(TestDescriptor testDescriptor, TestResult result); }