У меня есть набор тестов, который выполняется как часть более крупной структуры сборки, написанной на Python. Некоторые из тестов требуют параметров, которые я хочу передать с использованием переменных среды.nosetests framework: как передать переменные среды в мои тесты?
По-видимому, бегун с носетами имеет параметр env
, который делает то, что я хочу, according to the documentation. Кажется, однако, что он не работает, как считалось, что он должен?
Вот минимальный тестовый сценарий, который иллюстрирует проблему:
#!/usr/bin/env python
# pip install nose
import os, nose, unittest
class Test(unittest.TestCase):
def test_env(self):
self.assertEquals(os.environ.get('HELLO'), 'WORLD')
if __name__ == '__main__':
nose.run(env={'HELLO': 'WORLD'})
утверждение не удается, так как параметр env
не получить передается к испытанию. Кто-нибудь знает, почему?
NB: Я работал вокруг проблемы путем запуска инструмента консоли nosetests
:
#!/usr/bin/env python
import sys, os, nose, unittest, subprocess
class Test(unittest.TestCase):
def test_env(self):
self.assertEquals(os.environ.get('HELLO'), 'WORLD')
if __name__ == '__main__':
subprocess.Popen(['nosetests', sys.argv[0]],
env={'HELLO': 'WORLD'}).wait()
Однако, это чувствует, как ляп, и я по-прежнему заинтересованы в изучении использовать nose.run()
должным образом.
Вы все равно должны восстановить старый 'os.environ 'если вы делаете что-то еще после того, как тесты выполнялись, но это то, что можно учесть в методе, я думаю. Я приму это в качестве ответа. – Mihai