파이썬으로 작성된 더 큰 빌드 프레임 워크의 일부로 실행되는 테스트 슈트가 있습니다. 일부 테스트에는 환경 변수를 사용하여 전달하려는 매개 변수가 필요합니다.nosetests 프레임 워크 : 테스트에 환경 변수를 전달하는 방법은 무엇입니까?
분명히 nosetests 러너는 내가 원하는 것을 수행하는 env
매개 변수를 가지고 있습니다. 그러나 according to the documentation. 그것은 예상대로 작동하지 않습니다. env
매개 변수는 테스트에 전달되지 않기 때문에,
#!/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'})
어설 션이 실패
다음은 문제를 예시 최소한의 테스트 스크립트입니다. 아무도 이유를 아나요?
주의 :
#!/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()
그러나, 이것은 kludge 같은 느낌, 그리고 나는 아직도 제대로 nose.run()
를 사용하는 학습에 관심이있을 것 : 나는 콘솔 nosetests
도구를 실행하여 문제를 해결했다.
'os.environ 다음
tests/test_env.py
에서 다음'시험이 끝난 후에 다른 일을한다면이 방법이 고려 될 수 있습니다. 나는 이것을 대답으로 받아 들일 것이다. – Mihai