провел 0 тестов за 0.000 с - при выполнении Python-unittest с Selenium - PullRequest
0 голосов
/ 28 сентября 2018
    import unittest
    from selenium import webdriver
    from selenium.webdriver.common.keys import Keys

class loginAvaliador(unittest.TestCase):

def setUp(self):
    self.driver = webdriver.Chrome('/Users/r13/dev/chromedriver')

def login_avaliador(self):
    driver = self.driver
    driver.get("http://d3dyod5mwyu6xk.cloudfront.net/")
    assert "FGV" in driver.title
    cpf = driver.find_element_by_xpath('//input[@placeholder="CPF"]')
    cpf.send_keys("27922797885")
    password = driver.find_element_by_xpath('//input[@placeholder="SENHA"]')
    password.send_keys("enccejaregular")
    login = driver.find_element_by_tag_name('button')
    login.click()
    assert "No results found." not in driver.page_source

def tearDown(self):
    self.driver.close()

if __name__ == "__main__":
    unittest.main()

, когда я пытаюсь запустить этот тестовый скрипт, он возвращает «выполнил 0 тестов за 0,000 с», почему это происходит?Я новичок в Python и пишу сценарии этого теста, поэтому я не могу найти ошибку

Ответы [ 2 ]

0 голосов
/ 28 сентября 2018

При работе с модулем Python unittest с Selenium вы должны учитывать следующие факты:

  • Вам необходимо позаботиться о отступах,Отступы для class и test_method различны.
  • Пока вы определяете имя @Tests, тесты начинаются с test например

    def test_login_avaliador(self):
    
  • Всегда вызывайте driver.quit() в методе tearDown(){} для закрытия и уничтожения WebDriver и Веб-клиента экземпляров изящно.

  • Вот ваш собственный код с необходимыми незначительными изменениями:

    import unittest
    from selenium import webdriver
    from selenium.webdriver.common.keys import Keys
    
    class loginAvaliador(unittest.TestCase):
    
        def setUp(self):
            self.driver = webdriver.Chrome(executable_path=r'C:\WebDrivers\chromedriver.exe')
    
        def test_login_avaliador(self):
            driver = self.driver
            driver.get("http://d3dyod5mwyu6xk.cloudfront.net/")
            assert "FGV" in driver.title
            cpf = driver.find_element_by_xpath('//input[@placeholder="CPF"]')
            cpf.send_keys("27922797885")
            password = driver.find_element_by_xpath('//input[@placeholder="SENHA"]')
            password.send_keys("enccejaregular")
            login = driver.find_element_by_tag_name('button')
            login.click()
            assert "No results found." not in driver.page_source
    
        def tearDown(self):
            self.driver.quit()
    
    if __name__ == "__main__":
        unittest.main()
    
  • Результат выполнения:

    C:\path\to\PyPrograms>python -m unittest 52560471_unittest.py
    
    DevTools listening on ws://127.0.0.1:12022/devtools/browser/078fc4e9-3ca6-4bbb-b318-0b8f04318d32
    .
    ----------------------------------------------------------------------
    Ran 1 test in 40.796s
    
    OK
    
0 голосов
/ 28 сентября 2018

С модулем unittest вам нужно использовать их встроенные методы утверждения.Вместо того, чтобы просто писать

assert a not in b

, вы пишете, например,

self.assertNotIn("No results found.",driver.page_source)

.Список всех методов assert смотрите здесь: https://docs.python.org/2/library/unittest.html#unittest.TestCase

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...