diff options
-rwxr-xr-x | cmdtest | 16 | ||||
-rwxr-xr-x | fail-tests/fail.script | 4 | ||||
-rw-r--r-- | fail-tests/fail.stderr-actual | 0 | ||||
-rw-r--r-- | fail-tests/fail.stderr-diff | 0 | ||||
-rw-r--r-- | fail-tests/fail.stdout-actual | 1 | ||||
-rw-r--r-- | fail-tests/fail.stdout-diff | 4 |
6 files changed, 21 insertions, 4 deletions
@@ -51,17 +51,18 @@ class CommandTester(cliapp.Application): 'run only TEST (can be given many times)', metavar='TEST') self.settings.boolean(['timings'], 'report how long each test takes') + self.settings.boolean(['keep', 'k'], 'keep temporary data on failure') def process_args(self, dirnames): self.setup_ttystatus() - td = self.load_tests(dirnames) - self.ts['tests'] = td.tests - self.timings = {} self.timings[ALL_TESTS] = {} suite_started = time.time() + td = self.load_tests(dirnames) + self.ts['tests'] = td.tests + errors = 0 self.setup_tempdir() self.run_script(ALL_TESTS, td.setup_once) @@ -78,7 +79,11 @@ class CommandTester(cliapp.Application): self.run_script(test.name, td.teardown) self.timings[test.name][COMPLETE_TEST] = time.time() - started self.run_script(ALL_TESTS, td.teardown_once) - self.cleanup_tempdir() + + keep_tempdir = errors and self.settings['keep'] + if not keep_tempdir: + self.cleanup_tempdir() + self.timings[ALL_TESTS][COMPLETE_TEST] = time.time() - suite_started ok = len(td.tests) - errors @@ -86,6 +91,9 @@ class CommandTester(cliapp.Application): self.output.write('%d/%d tests OK, %d failures\n' % (ok, len(td.tests), errors)) + if keep_tempdir: + self.output.write('Test work area: %s\n' % self.tempdir) + if self.settings['timings']: self.report_timings() diff --git a/fail-tests/fail.script b/fail-tests/fail.script new file mode 100755 index 0000000..60fefe9 --- /dev/null +++ b/fail-tests/fail.script @@ -0,0 +1,4 @@ +#!/bin/sh + +echo "file used by test" > "$DATADIR/file.txt" +echo "this is not empty output to make test fail" diff --git a/fail-tests/fail.stderr-actual b/fail-tests/fail.stderr-actual new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/fail-tests/fail.stderr-actual diff --git a/fail-tests/fail.stderr-diff b/fail-tests/fail.stderr-diff new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/fail-tests/fail.stderr-diff diff --git a/fail-tests/fail.stdout-actual b/fail-tests/fail.stdout-actual new file mode 100644 index 0000000..ae64681 --- /dev/null +++ b/fail-tests/fail.stdout-actual @@ -0,0 +1 @@ +this is not empty output to make test fail diff --git a/fail-tests/fail.stdout-diff b/fail-tests/fail.stdout-diff new file mode 100644 index 0000000..7f5f155 --- /dev/null +++ b/fail-tests/fail.stdout-diff @@ -0,0 +1,4 @@ +--- /dev/null 2012-02-19 15:48:23.843722603 +0000 ++++ fail-tests/fail.stdout-actual 2012-02-24 08:32:43.590107473 +0000 +@@ -0,0 +1 @@ ++this is not empty output to make test fail |