Show More
@@ -263,6 +263,8 b' def getparser():' | |||||
263 | help="keep temporary directory after running tests") |
|
263 | help="keep temporary directory after running tests") | |
264 | parser.add_option("-k", "--keywords", |
|
264 | parser.add_option("-k", "--keywords", | |
265 | help="run tests matching keywords") |
|
265 | help="run tests matching keywords") | |
|
266 | parser.add_option("--list-tests", action="store_true", | |||
|
267 | help="list tests instead of running them") | |||
266 | parser.add_option("-l", "--local", action="store_true", |
|
268 | parser.add_option("-l", "--local", action="store_true", | |
267 | help="shortcut for --with-hg=<testdir>/../hg, " |
|
269 | help="shortcut for --with-hg=<testdir>/../hg, " | |
268 | "and --with-chg=<testdir>/../contrib/chg/chg if --chg is set") |
|
270 | "and --with-chg=<testdir>/../contrib/chg/chg if --chg is set") | |
@@ -1907,6 +1909,25 b' class TextTestRunner(unittest.TextTestRu' | |||||
1907 |
|
1909 | |||
1908 | self._runner = runner |
|
1910 | self._runner = runner | |
1909 |
|
1911 | |||
|
1912 | def listtests(self, test): | |||
|
1913 | result = TestResult(self._runner.options, self.stream, | |||
|
1914 | self.descriptions, 0) | |||
|
1915 | test = sorted(test, key=lambda t: t.name) | |||
|
1916 | for t in test: | |||
|
1917 | print(t.name) | |||
|
1918 | result.addSuccess(t) | |||
|
1919 | ||||
|
1920 | if self._runner.options.xunit: | |||
|
1921 | with open(self._runner.options.xunit, "wb") as xuf: | |||
|
1922 | self._writexunit(result, xuf) | |||
|
1923 | ||||
|
1924 | if self._runner.options.json: | |||
|
1925 | jsonpath = os.path.join(self._runner._testdir, b'report.json') | |||
|
1926 | with open(jsonpath, 'w') as fp: | |||
|
1927 | self._writejson(result, fp) | |||
|
1928 | ||||
|
1929 | return result | |||
|
1930 | ||||
1910 | def run(self, test): |
|
1931 | def run(self, test): | |
1911 | result = TestResult(self._runner.options, self.stream, |
|
1932 | result = TestResult(self._runner.options, self.stream, | |
1912 | self.descriptions, self.verbosity) |
|
1933 | self.descriptions, self.verbosity) | |
@@ -2384,16 +2405,19 b' class TestRunner(object):' | |||||
2384 | verbosity = 2 |
|
2405 | verbosity = 2 | |
2385 | runner = TextTestRunner(self, verbosity=verbosity) |
|
2406 | runner = TextTestRunner(self, verbosity=verbosity) | |
2386 |
|
2407 | |||
2387 |
if self. |
|
2408 | if self.options.list_tests: | |
2388 | self._installhg() |
|
2409 | result = runner.listtests(suite) | |
2389 | self._checkhglib("Testing") |
|
|||
2390 | else: |
|
2410 | else: | |
2391 |
self._ |
|
2411 | if self._installdir: | |
2392 |
|
|
2412 | self._installhg() | |
2393 | assert self._installdir |
|
2413 | self._checkhglib("Testing") | |
2394 |
|
|
2414 | else: | |
|
2415 | self._usecorrectpython() | |||
|
2416 | if self.options.chg: | |||
|
2417 | assert self._installdir | |||
|
2418 | self._installchg() | |||
2395 |
|
2419 | |||
2396 | result = runner.run(suite) |
|
2420 | result = runner.run(suite) | |
2397 |
|
2421 | |||
2398 | if result.failures: |
|
2422 | if result.failures: | |
2399 | failed = True |
|
2423 | failed = True |
@@ -224,6 +224,60 b' test --xunit support' | |||||
224 | test-failure-unicode.t * (glob) |
|
224 | test-failure-unicode.t * (glob) | |
225 | test-failure.t * (glob) |
|
225 | test-failure.t * (glob) | |
226 | test-success.t * (glob) |
|
226 | test-success.t * (glob) | |
|
227 | ||||
|
228 | $ rt --list-tests | |||
|
229 | test-failure-unicode.t | |||
|
230 | test-failure.t | |||
|
231 | test-success.t | |||
|
232 | ||||
|
233 | $ rt --list-tests --json | |||
|
234 | test-failure-unicode.t | |||
|
235 | test-failure.t | |||
|
236 | test-success.t | |||
|
237 | $ cat report.json | |||
|
238 | testreport ={ | |||
|
239 | "test-failure-unicode.t": { | |||
|
240 | "result": "success" | |||
|
241 | }, | |||
|
242 | "test-failure.t": { | |||
|
243 | "result": "success" | |||
|
244 | }, | |||
|
245 | "test-success.t": { | |||
|
246 | "result": "success" | |||
|
247 | } | |||
|
248 | } (no-eol) | |||
|
249 | ||||
|
250 | $ rt --list-tests --xunit=xunit.xml | |||
|
251 | test-failure-unicode.t | |||
|
252 | test-failure.t | |||
|
253 | test-success.t | |||
|
254 | $ cat xunit.xml | |||
|
255 | <?xml version="1.0" encoding="utf-8"?> | |||
|
256 | <testsuite errors="0" failures="0" name="run-tests" skipped="0" tests="0"> | |||
|
257 | <testcase name="test-failure-unicode.t"/> | |||
|
258 | <testcase name="test-failure.t"/> | |||
|
259 | <testcase name="test-success.t"/> | |||
|
260 | </testsuite> | |||
|
261 | ||||
|
262 | $ rt --list-tests test-failure* --json --xunit=xunit.xml | |||
|
263 | test-failure-unicode.t | |||
|
264 | test-failure.t | |||
|
265 | $ cat report.json | |||
|
266 | testreport ={ | |||
|
267 | "test-failure-unicode.t": { | |||
|
268 | "result": "success" | |||
|
269 | }, | |||
|
270 | "test-failure.t": { | |||
|
271 | "result": "success" | |||
|
272 | } | |||
|
273 | } (no-eol) | |||
|
274 | $ cat xunit.xml | |||
|
275 | <?xml version="1.0" encoding="utf-8"?> | |||
|
276 | <testsuite errors="0" failures="0" name="run-tests" skipped="0" tests="0"> | |||
|
277 | <testcase name="test-failure-unicode.t"/> | |||
|
278 | <testcase name="test-failure.t"/> | |||
|
279 | </testsuite> | |||
|
280 | ||||
227 | $ rm test-failure-unicode.t |
|
281 | $ rm test-failure-unicode.t | |
228 |
|
282 | |||
229 | test for --retest |
|
283 | test for --retest |
General Comments 0
You need to be logged in to leave comments.
Login now