我正在使用python unittest创建一系列测试并使用nosetest模块执行它们。
我试图弄清楚如何传递一个参数,例如环境或域,以便该值传递给正在执行的实际测试方法。
我有一个运行时python脚本,它将测试套件类文件和环境作为参数传递
python runner.py --suite=generic_pass.py --env=dev.domain.com
runner.py获取套件值并将其传递给" runner.py"中的nose.run方法中的test_suite;
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
答案 0 :(得分:0)
我发现如何做到这一点的唯一方法是使用:
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'])
如果其他人有更好的解决方案,请告诉我。