我正在构建一个测试框架,它将拥有一个由Python / Lettuce支持的顶级Gherkin界面。我们希望将它构建到我们的持续集成基础架构(Hudson)中,并且可以在任何环境(dev-int,qa-int,stage等)上轻松运行相同的测试。由于您无法在命令行上将参数传递给测试,因此我一直在考虑的方法是:
哈德森工作
- 在机器上动态构建配置文件的子作业 根据所需的测试环境运行测试
- 子作业在跑步机上开始生菜,地形文件然后拿起 动态配置中的值以针对正确的环境运行测试
- 子作业删除配置文件
醇>
虽然这会起作用,但对我来说这似乎是一种愚蠢的解决方法。我一直在谷歌搜索,但似乎甚至写莴苣的人认为配置不应该是必要的,如果你想要它,你应该只在测试之外设置环境变量然后从内部地形读取它们。如果没有重新设计生菜以便能够通过命令行参数,是否有人能想到其他方法来实现这一目标?
答案 0 :(得分:0)
当时不确定生菜是什么样的,但有world
个对象(outlined here)。作者承认这有点不py,但你可以这样做:
from lettuce import Runner, world
runner = Runner('path/to/tests', verbosity=4)
world.VAR_NAME = VALUE
result = runner.run()
在您的terrain.py
文件中,您可以像这样访问世界值:
from lettuce import step, world
@step('step definition')
def function my_step(step):
print world.VAR_NAME
这些世界变量在此测试套件的持续时间内可用,因此请注意您放入世界的大量信息