01: package testhelper;
02:
03: /**
04: * <code>OutputDirectoryPatch</code> is a helper class to provide an output directory
05: * for TestNG tests that explicitly create an instance of TestNG and do not know the
06: * output directory specified for the test.
07: *
08: * @author cquezel
09: * @since 4.8
10: */
11: public final class OutputDirectoryPatch {
12:
13: /** The default output directory name if none was specified. We should use something
14: * different from "test-output" to make it clear that the output directory
15: * has not been set. */
16: private static final String DEFAULT_OUTPUT_DIRECTORY = "test-output";
17:
18: /** The name of the System property used to store the output directory. */
19: private static final String OUTPUT_DIRECTORY_PROPERTY_NAME = "testng.outputDir";
20:
21: /**
22: * Private constructor to disable instantiation.
23: *
24: * @since 4.8
25: */
26: private OutputDirectoryPatch() {
27: // Hide constructor
28: }
29:
30: /**
31: * Returns the output directory as specified for the current test.
32: *
33: * @return the output directory as specified for the current test.
34: * @since 4.8
35: */
36: public static String getOutputDirectory() {
37: String tmp = System.getProperty(OUTPUT_DIRECTORY_PROPERTY_NAME);
38: if (tmp != null) {
39: return tmp;
40: }
41: // System.err.println("System property: " + OUTPUT_DIRECTORY_PROPERTY_NAME
42: // + " has not been set. Using default path: " + DEFAULT_OUTPUT_DIRECTORY);
43:
44: // new Throwable("Stack is only to help locate the problem. No excpetion thrown.").printStackTrace(System.err);
45: return DEFAULT_OUTPUT_DIRECTORY;
46: }
47: }
|