2015-04-09 2 views
2

Я новичок в python, и я пытаюсь создать свой собственный набор тестов.test suite python - webdriver

Основная идея заключается в том, чтобы выполнить один и тот же тест в другом браузере, поэтому я использовал переменный браузер, который используется в тесте для вызова webdriver.

У меня есть это:

def test_01(self,browser):

def test_02(self,browser):

мой Suite:

def suite(): 
     test_suite = unittest.TestSuite() 
     suite.addTest(unittest.makeSuite(Test01)) 
     return test_suite 

главная:

 if __name__ == "__main__": 
      suite1 = unittest.TestSuite() 
      self = Test01() 
      suite1.addTest(Test01.test_01(self, 'firefox')) 
      suite1.addTest(Test01.test_02(self, 'firefox')) 
      unittest.TextTestRunner(verbosity=2).run(suite()) 

Когда я пытаюсь выполнить этот сценарий, то первый один тест выполнить, то второй нет, и я получил следующую ошибку:

Traceback (most recent call last): File "SuiteWebMail.py", line 138, in suite1.addTest(Test01.test_01(self, 'firefox')) File "c:\Python34\lib\unittest\suite.py", line 50, in addTest raise TypeError("{} is not callable".format(repr(test))) TypeError: None is not callable

Спасибо заранее

C

ответ

0

может быть, это не Pythonic путь, но я нашел решение:

class Test01(unittest.TestCase): 

    def test_login(self): 
     self.page = "https://myWebPageAddress" 
     self.username = "userName" 
     self.password = "Password" 
     self.browser_label = ['firefox', 'chrome', 'ie'] 

     for index in range(len(self.browser_label)): 
      self.browser_name = self.browser_label[index] 


      if self.browser_name == 'firefox': 
       logger.debug("Opening [" + self.browser_name + "] ...") 
       self.driver = webdriver.Firefox() 
      if self.browser_name == 'chrome': 
       logger.debug("Opening [" + self.browser_name + "] ...") 
       self.driver = webdriver.Chrome() 
      if self.browser_name == 'ie': 
       logger.debug("Opening [" + self.browser_name + "] ...") 
       self.driver = webdriver.Ie() 

      try: 
       logger.info("Test_01::Case_01::Login OK") 
       Test01.case_01(self) 
      except BaseException as e: 
       logger.fatal(e.value) 
     logger.info("End") 
     self.driver.close() 

    def case_01(self): 
    .... 
    .... 

Я надеюсь, что это может быть полезным для кого-то.

Смежные вопросы