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

时间:2015-11-30 04:15:04

标签: python unit-testing nose nosetests

我正在使用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

1 个答案:

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

如果其他人有更好的解决方案,请告诉我。