在unittest.main()之后执行命令

时间:2014-10-23 23:41:35

标签: python unit-testing python-3.x python-unittest

我从另一个Python脚本调用以下脚本:

  

test.py logfile

它应该运行测试并将结果保存在日志文件中。 但由于某种原因,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!!!!")

1 个答案:

答案 0 :(得分:3)

unittest.main接受可选参数exit。它的默认值是True;导致sys.exit被调用。明确通过False以防止这种情况发生。

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