Как передать URL-адрес в качестве аргумента через командную строку для запуска тестовых сценариев Selen Python - PullRequest
0 голосов
/ 06 июня 2018

Есть ли какой-нибудь правильный способ использования получения url в cmd в качестве аргумента в файле testcases.py?

Я запускаю ниже команды в cmd для запуска тестовых примеров файла python: testcases.py "any url"

testcases.py имеет кодировку:

class JSAlertCheck(unittest.TestCase):
    def setUp(self):
        self.driver = webdriver.Chrome("E:\chromedriver.exe")
        self.url = sys.argv[1]

    def test_Case1(self):
        driver = self.driver

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

if __name__ == "__main__":
    unittest.main(sys.argv[1])

1 Ответ

0 голосов
/ 06 июня 2018

Согласно обсуждению Передача аргументов юнит-теста Python Python Pundits , кажется, передает, что:

Модульные тесты должны быть автономными, которые будут иметьнет никаких зависимостей вне их setUp() и tearDown() методов.Это делается для того, чтобы каждый тест имел минимальные побочные эффекты и реакции на другой тест.Передача параметра отменяет это свойство unittest и, таким образом, делает их недействительными.Использование Конфигурации теста было бы самым простым способом и более подходящим, поскольку unittest никогда не должен полагаться на сторонние данные для выполнения теста.

Если выеще хочу сделать это, вот одно из рабочих решений:

  • Блок кода:

    from selenium import webdriver
    import unittest
    import sys
    
    
    class MyTest(unittest.TestCase):
    
        URL = "foo"
    
        def setUp(self):
            self.driver = webdriver.Chrome(executable_path=r'C:\Utility\BrowserDrivers\chromedriver.exe')
            driver = self.driver
            driver.get(self.URL)
    
        def test_Case1(self):
            driver = self.driver
            print(driver.title)
    
        def tearDown(self):
            self.driver.quit()
    
    if __name__ == "__main__":
        if len(sys.argv) > 1:
            MyTest.URL = sys.argv.pop()
        unittest.main()
    
  • Команда CLI:

    python unittest_cmdline_urlASarguments.py http://www.python.org
    
  • Вывод:

    C:\Users\AtechM_03\LearnAutmation\PythonProject\readthedocs>python unittest_cmdline_urlASarguments.py http://www.python.org
    [4448:5632:0606/205445.017:ERROR:install_util.cc(589)] Unable to create registry key HKLM\SOFTWARE\Policies\Google\Chrome for reading result=2
    
    DevTools listening on ws://127.0.0.1:5634/devtools/browser/40cc6c16-1e52-4f49-a54f-08fac3ff7abc
    Welcome to Python.org
    .
    ----------------------------------------------------------------------
    Ran 1 test in 9.534s
    
    OK
    
    C:\Users\AtechM_03\LearnAutmation\PythonProject\readthedocs>
    
  • Снимок командной строки:

unittest_cli_url

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