2014-10-23 8 views
3

Я звоню следующий сценарий из другого сценария Python:Выполнение команд после unittest.main()

test.py логфайл

Он должен запустить тест и сохранить результат в журнальный файл. Но по какой-то причине команды после unittest.main(testRunner=runner) не выполняются. Я даже не уверен, что файл будет закрыт после написания. Есть ли другой способ сценария?

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!!!!") 

ответ

3

unittest.main принимает необязательный параметр exit. Значение по умолчанию для него: True; вызывать sys.exit. Явно передаю False, чтобы предотвратить это.

... 
unittest.main(testRunner=runner, exit=False) 
... 
Смежные вопросы