package net.thucydides.core.reports; import com.google.common.base.Optional; import net.thucydides.core.model.TestOutcome; import java.io.File; import java.io.IOException; /** * Generates a report based on a set of acceptance test results. * * @author johnsmart * */ public interface AcceptanceTestReporter { /** * A name used to identify a given reporter. */ String getName(); /** * Return the format that this reporter generates, if it is a format that can be activated or deactivated * via the output.formats configuration property. */ Optional<OutcomeFormat> getFormat(); /** * Generate reports for a given acceptance test run. */ File generateReportFor(final TestOutcome testOutcome, final TestOutcomes allTestOutcomes) throws IOException; /** * Define the output directory in which the reports will be written. */ void setOutputDirectory(final File outputDirectory); /** * Define or override the directory where report resources are stored. * This can be on the file system or on the classpath */ void setResourceDirectory(final String resourceDirectoryPath); /** * Optional. Used to distinguish the report generated from other similar reports. */ void setQualifier(final String qualifier); }