eric7/Unittest/Interfaces/UnittestRunner.py

branch
unittest
changeset 9064
339bb8c8007d
parent 9063
f1d7dd7ae471
equal deleted inserted replaced
9063:f1d7dd7ae471 9064:339bb8c8007d
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),

eric ide

mercurial