package org.testng;

import java.util.List;

This class is used to alter the list of test methods that TestNG is about to run.

An instance of this class will be invoked right before TestNG starts invoking test methods. Only methods that have no dependents and that don't depend on any other test methods will be passed in parameter. Implementers of this interface need to return a list of IMethodInstance that represents the list of test methods they want run. TestNG will run these methods in the same order found in the returned value.

Typically, the returned list will be just the methods passed in parameter but sorted differently, but it can actually have any size (it can be empty, it can be of the same size as the original list or it can contain more methods).

The ITestContext is passed in the intercept method so that implementers can set user values (using IAttributes.setAttribute(String, Object)), which they can then look up later while generating the reports.

Author:cbeust
/** * This class is used to alter the list of test methods that TestNG is about to run. * * <p>An instance of this class will be invoked right before TestNG starts invoking test methods. * Only methods that have no dependents and that don't depend on any other test methods will be * passed in parameter. Implementers of this interface need to return a list of {@link * IMethodInstance} that represents the list of test methods they want run. TestNG will run these * methods in the same order found in the returned value. * * <p>Typically, the returned list will be just the methods passed in parameter but sorted * differently, but it can actually have any size (it can be empty, it can be of the same size as * the original list or it can contain more methods). * * <p>The {@link ITestContext} is passed in the <code>intercept</code> method so that implementers can * set user values (using {@link ITestContext#setAttribute(String, Object)}), which they can then * look up later while generating the reports. * * @author cbeust */
public interface IMethodInterceptor extends ITestNGListener { List<IMethodInstance> intercept(List<IMethodInstance> methods, ITestContext context); }