eric7/Testing/Interfaces/UnittestRunner.py

branch
unittest
changeset 9070
eab09a1ab8ce
parent 9066
a219ade50f7c
child 9089
b48a6d0f6309
equal deleted inserted replaced
9069:938039ea15ca 9070:eab09a1ab8ce
284 284
285 failfast = "--failfast" in argv 285 failfast = "--failfast" in argv
286 if failfast: 286 if failfast:
287 argv.remove("--failfast") 287 argv.remove("--failfast")
288 288
289 coverage = "--cover" in argv 289 collectCoverage = "--cover" in argv
290 if coverage: 290 if collectCoverage:
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 if "--cover-file" in argv:
296 index = argv.index("--cover-file")
297 covDataFile = argv[index + 1]
298 del argv[index:index + 2]
299 else:
300 covDataFile = ""
295 301
296 if argv and argv[0] == "--failed-only": 302 if argv and argv[0] == "--failed-only":
297 if discover: 303 if discover:
298 testFileName = "" 304 testFileName = ""
299 failed = argv[1:] 305 failed = argv[1:]
312 318
313 if testFileName: 319 if testFileName:
314 sys.path.insert(1, os.path.dirname(os.path.abspath(testFileName))) 320 sys.path.insert(1, os.path.dirname(os.path.abspath(testFileName)))
315 elif discoveryStart: 321 elif discoveryStart:
316 sys.path.insert(1, os.path.abspath(discoveryStart)) 322 sys.path.insert(1, os.path.abspath(discoveryStart))
323
324 # setup test coverage
325 if collectCoverage:
326 if not covDataFile:
327 if discover:
328 covname = os.path.join(discoveryStart, "test")
329 elif testFileName:
330 covname = os.path.splitext(
331 os.path.abspath(testFileName))[0]
332 else:
333 covname = "test"
334 covDataFile = "{0}.coverage".format(covname)
335 if not os.path.isabs(covDataFile):
336 covDataFile = os.path.abspath(covDataFile)
337
338 sys.path.insert(
339 2,
340 os.path.abspath(os.path.join(
341 os.path.dirname(__file__), "..", "..", "DebugClients", "Python"
342 ))
343 )
344 from DebugClients.Python.coverage import Coverage
345 cover = Coverage(data_file=covDataFile)
346 if coverageErase:
347 cover.erase()
348 cover.start()
349 else:
350 cover = None
317 351
318 try: 352 try:
319 testLoader = unittest.TestLoader() 353 testLoader = unittest.TestLoader()
320 if discover and not failed: 354 if discover and not failed:
321 if testCases: 355 if testCases:
352 for id, name, desc in _assembleTestCasesList(test) 386 for id, name, desc in _assembleTestCasesList(test)
353 ] 387 ]
354 } 388 }
355 writer.write(collectedTests) 389 writer.write(collectedTests)
356 390
357 # setup test coverage
358 if coverage:
359 if discover:
360 covname = os.path.join(discoveryStart, "unittest")
361 elif testFileName:
362 covname = os.path.splitext(
363 os.path.abspath(testFileName))[0]
364 else:
365 covname = "unittest"
366 covDataFile = "{0}.coverage".format(covname)
367 if not os.path.isabs(covDataFile):
368 covDataFile = os.path.abspath(covDataFile)
369
370 from DebugClients.Python.coverage import coverage as cov
371 cover = cov(data_file=covDataFile)
372 if coverageErase:
373 cover.erase()
374 else:
375 cover = None
376
377 testResult = EricTestResult(writer, failfast) 391 testResult = EricTestResult(writer, failfast)
378 startTestRun = getattr(testResult, 'startTestRun', None) 392 startTestRun = getattr(testResult, 'startTestRun', None)
379 if startTestRun is not None: 393 if startTestRun is not None:
380 startTestRun() 394 startTestRun()
381 try: 395 try:
382 if cover:
383 cover.start()
384 test.run(testResult) 396 test.run(testResult)
385 finally: 397 finally:
386 if cover: 398 if cover:
387 cover.stop() 399 cover.stop()
388 cover.save() 400 cover.save()

eric ide

mercurial