Ejecución de comandos después de unittest.main ()

Estoy llamando al siguiente script de otro script de Python:

test.py logfile

Debe ejecutar la prueba y guardar el resultado en el archivo de registro. Pero por alguna razón, los comandos después de unittest.main(testRunner=runner) no se están ejecutando. Ni siquiera estoy seguro de si el archivo se cierra después de escribirlo. ¿Hay otra forma de escribirlo?

 from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys from selenium.webdriver.support.ui import Select from selenium.common.exceptions import NoSuchElementException from selenium.common.exceptions import NoAlertPresentException import unittest, time, re, sys class SeleniumYahooTest(unittest.TestCase): def setUp(self): self.driver = webdriver.Firefox() self.driver.implicitly_wait(30) self.base_url = "https://www.yahoo.com" self.verificationErrors = [] self.accept_next_alert = True . . . def tearDown(self): self.driver.quit() self.assertEqual([], self.verificationErrors) if __name__ == '__main__': if len(sys.argv)>1: testcase_name = sys.argv[0] result_file = sys.argv[1] del(sys.argv[1:]) f = open(result_file, "a") result_file.write("This is Test " + testcase_name + " " + time.strftime("%c")) print(testcase_name," is running!!!!") runner = unittest.TextTestRunner(f) unittest.main(testRunner=runner) f.close() print(testcase_name," is finished!!!!") 

unittest.main acepta una exit parámetro opcional. El valor predeterminado para ello es True ; causa que sys.exit sea ​​llamado. Pase explícitamente False para evitar eso.

 ... unittest.main(testRunner=runner, exit=False) ...