【发布时间】:2017-04-18 01:48:27
【问题描述】:
我有一个脚本go.py,它需要在几个不同的模块上运行单元测试(带有鼻子),每个模块都有自己的虚拟环境。
如何在测试前激活每个虚拟环境,然后再将其停用?
即我想做这个(伪代码):
for fn in functions_to_test:
activate(path_to_env)
run_test(fn)
deactivate()
激活()
在虚拟环境中,有./bin/activate_this.py
这就是我想要的。所以在go.py我说
import os
activate_this_file = os.path.join(env_dir,'bin/deactivate_this.py')
execfile(activate_this_file, dict(__file__=activate_this_file))
run_test()
我目前正在使用 run_test()
suite_x = TestLoader().loadTestsFromName(test_module + ":" + test_class)
r = run(suite = suite_x, argv = [sys.argv[0], "--verbosity=0", "-s"])
停用
这是我想不通的部分。
env/bin/activate_this.py 的停用等效项是什么?
更广泛的背景
每个模块都将通过go.py 作为 lambda 函数上传到 AWS。 (其中“lambda 函数”在 AWS 上下文中具有特定含义,与 lambda x:foo(x) 无关)
我希望go.py 在各自的虚拟环境中对每个 lambda 函数运行单元测试(因为一旦部署到 AWS,它们就会在这些虚拟环境中执行)。每个 lambda 函数使用不同的库,因此它们具有不同的虚拟环境。
【问题讨论】:
标签: python python-2.7 unit-testing virtualenv nose