cucumber.api.Plugin Maven / Gradle / Ivy
package cucumber.api;
import java.io.File;
import java.net.URI;
import java.net.URL;
/**
* Marker interface for all plugins.
*
* A plugin can be added to the runtime to listen in on step definition, summary printing and test
* execution.
*
* Plugins must implement one of the following interfaces:
*
* - {@link cucumber.api.StepDefinitionReporter}
* - {@link cucumber.api.SummaryPrinter}
* - {@link cucumber.api.formatter.Formatter}
*
*
* Plugins are added to the runtime from the command line or @{@link CucumberOptions} and may be provided with a
* parameter. To accept this parameter the plugin must have a public constructor that accepts one of the following
* arguments:
*
* - {@link String}
* - {@link Appendable}
* - {@link URI}
* - {@link URL}
* - {@link File}
*
*
* To make the parameter optional the plugin must also have a public default constructor.
*
* Plugins may also implement one of these interfaces:
*
* - {@link cucumber.api.formatter.ColorAware}
* - {@link cucumber.api.formatter.StrictAware}
* - {@link cucumber.api.event.EventListener}
*
*
*/
public interface Plugin {
}