как я могу передать аргумент(ы) через Nose.run, который можно подобрать по списку тестовых файлов python, содержащих методы тестирования

Я создаю серию тестов с помощью python unittest и выполняю их с помощью модуля Nosetest.

Я пытаюсь выяснить, как мне передать аргумент (ы), например, среду или домен, чтобы значение передавалось фактическому выполняемому методу тестирования.

У меня есть скрипт python для запуска, который передает файл класса тестового набора и среду в качестве аргументов.

python runner.py --suite=generic_pass.py --env=dev.domain.com

runner.py берет значение набора и передает его test_suite в методе Nose.run внутри "runner.py".

Содержимое runner.py

nose.run(argv=["", test_suite, "--verbosity=2"])

Содержимое сценария test_suite или «generic_pass.py» выглядит следующим образом.

class loginTest(login.userLoginTest):
     pass
class logoutTest(logout.userLogoutTest):
     pass

Содержимое файла login.py

class userLoginTest(unittest.TestCase):
     def setUp(self):
         self.login = userLogin(user,pass,environment)
     def test_response(self):
         self.assertEquals(200, getResponse(self.login))

Когда скрипт python runner.py выполняется, он запускает утилиту Nose.run, которая затем выполняет тесты, указанные в generic_pass.py (test_suite).

Я пытаюсь выяснить, как я могу передать содержимое --env "dev.domain.com" из runner.py в каждый файл класса тестового примера с помощью метода nose.run(), чтобы я мог использовать его в

self.login = userLogin(user,pass,environment)

который находится в login.py


person Alex D    schedule 30.11.2015    source источник


Ответы (1)


Единственный способ, которым я нашел, как это сделать, - использовать:

os.environ[]

Другими словами, я бы объявил это прямо перед тем, как использовать метод Nose.run().

os.environ['env']='dev.domain.com'
nose.run(argv=["", test_suite, "--verbosity=2"])

И тогда я могу получить содержимое в тестовом примере

     self.login = userLogin(user,pass,os.environ['env'])

Если у кого-то есть лучшее решение, пожалуйста, дайте мне знать.

person Alex D    schedule 01.12.2015