291 argv.remove("--cover") |
291 argv.remove("--cover") |
292 coverageErase = "--cover-erase" in argv |
292 coverageErase = "--cover-erase" in argv |
293 if coverageErase: |
293 if coverageErase: |
294 argv.remove("--cover-erase") |
294 argv.remove("--cover-erase") |
295 |
295 |
296 if not discover: |
296 if argv and argv[0] == "--failed-only": |
297 testFileName, testName = argv[:2] |
297 if discover: |
298 del argv[:2] |
298 testFileName = "" |
|
299 failed = argv[1:] |
|
300 else: |
|
301 testFileName = argv[1] |
|
302 failed = argv[2:] |
299 else: |
303 else: |
300 testFileName = testName = "" |
304 failed = [] |
301 |
305 if discover: |
302 testCases = argv[:] |
306 testFileName = testName = "" |
|
307 else: |
|
308 testFileName, testName = argv[:2] |
|
309 del argv[:2] |
|
310 |
|
311 testCases = argv[:] |
303 |
312 |
304 if testFileName: |
313 if testFileName: |
305 sys.path.insert(1, os.path.dirname(os.path.abspath(testFileName))) |
314 sys.path.insert(1, os.path.dirname(os.path.abspath(testFileName))) |
306 elif discoveryStart: |
315 elif discoveryStart: |
307 sys.path.insert(1, os.path.abspath(discoveryStart)) |
316 sys.path.insert(1, os.path.abspath(discoveryStart)) |
308 |
317 |
309 try: |
318 try: |
310 testLoader = unittest.TestLoader() |
319 testLoader = unittest.TestLoader() |
311 if discover: |
320 if discover and not failed: |
312 if testCases: |
321 if testCases: |
313 test = testLoader.loadTestsFromNames(testCases) |
322 test = testLoader.loadTestsFromNames(testCases) |
314 else: |
323 else: |
315 test = testLoader.discover(discoveryStart) |
324 test = testLoader.discover(discoveryStart) |
316 else: |
325 else: |
317 if testFileName: |
326 if testFileName: |
318 module = __import__(os.path.splitext( |
327 module = __import__(os.path.splitext( |
319 os.path.basename(testFileName))[0]) |
328 os.path.basename(testFileName))[0]) |
320 else: |
329 else: |
321 module = None |
330 module = None |
322 # TODO: implement 'failed only' |
331 if failed: |
323 # if failedOnly and self.__failedTests: |
332 if module: |
324 # if module: |
333 failed = [t.split(".", 1)[1] |
325 # failed = [t.split(".", 1)[1] |
334 for t in failed] |
326 # for t in self.__failedTests] |
335 test = testLoader.loadTestsFromNames( |
327 # else: |
336 failed, module) |
328 # failed = list(self.__failedTests) |
337 else: |
329 # test = testLoader.loadTestsFromNames( |
338 test = testLoader.loadTestsFromName( |
330 # failed, module) |
339 testName, module) |
331 # else: |
|
332 test = testLoader.loadTestsFromName( |
|
333 testName, module) |
|
334 except Exception as err: |
340 except Exception as err: |
335 print("Exception:", str(err)) |
341 print("Exception:", str(err)) |
336 writer.write({ |
342 writer.write({ |
337 "event": "collecterror", |
343 "event": "collecterror", |
338 "error": str(err), |
344 "error": str(err), |