我如何通过 nose.run 传递参数,这些参数可以通过包含测试方法的 python 测试文件列表获取

how can I pass argument(s) through nose.run that can be picked up by list of python test files containing test methods

我正在使用 python unittest 创建一系列测试并使用 nosetest 模块执行它们。

我想知道如何传递参数,例如环境或域,以便将值传递给正在执行的实际测试方法。

我有一个运行程序 python 脚本,它通过测试套件 class 文件和环境作为参数

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)

我想弄清楚,如何通过 nose.run( ) 方法,以便我可以在

中使用它
self.login = userLogin(user,pass,environment)

位于login.py

我发现如何做到这一点的唯一方法是使用:

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'])

如果大家有更好的解决方案,请告诉我。