package testhelper; /** * <code>OutputDirectoryPatch</code> is a helper class to provide an output directory * for TestNG tests that explicitly create an instance of TestNG and do not know the * output directory specified for the test. * * @author cquezel * @since 4.8 */ public final class OutputDirectoryPatch { /** The default output directory name if none was specified. We should use something * different than "test-output" to make it clear that the output directory * has not been set. */ private static final String DEFAULT_OUTPUT_DIRECTORY = "test-output"; /** The name of the System property used to store the output directory. */ private static final String OUTPUT_DIRECTORY_PROPERTY_NAME = "testng.outputDir"; /** * Private constructor to disable instantiation. * * @since 4.8 */ private OutputDirectoryPatch() { // Hide constructor } /** * Returns the output directory as specified for the current test. * * @return the output directory as specified for the current test. * @since 4.8 */ public static String getOutputDirectory() { String tmp = System.getProperty(OUTPUT_DIRECTORY_PROPERTY_NAME); if (tmp != null) { return tmp; } // System.err.println("System property: " + OUTPUT_DIRECTORY_PROPERTY_NAME // + " has not been set. Using default path: " + DEFAULT_OUTPUT_DIRECTORY); // new Throwable("Stack is only to help locate the problem. No excpetion thrown.").printStackTrace(System.err); return DEFAULT_OUTPUT_DIRECTORY; } }