1

我正在构建一个测试框架,它将具有由 Python/Lettuce 支持的顶级 Gherkin 接口。我们希望将其构建到我们的持续集成基础架构(Hudson)中,并让相同的测试可以在任何环境(dev-int、qa-int、stage 等)上轻松运行。由于您无法在命令行上将参数传递给测试,因此我一直在考虑的方法是:

哈德逊工作

  1. 在机器上动态构建配置文件的子作业,该文件将根据所需的测试环境运行测试
  2. 子作业在跑步机上启动生菜,然后地形文件从动态配置中获取值以针对正确的环境运行测试
  3. 子作业删除配置文件

虽然这会起作用,但对我来说这似乎是一个 hacky 解决方法。我一直在谷歌搜索,但似乎即使是写生菜的人也认为配置不应该是必要的,如果你想要的话,你应该在测试之外设置环境变量,然后从内部地形读取它们。没有重新设计生菜来传递命令行参数,谁能想到其他方法来实现这个目标?

4

1 回答 1

0

不知道当时的生菜是什么样的,但有world物体(在此处概述)。作者承认这有点不像 Python,但你可以这样做:

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

这些世界变量在此测试套件期间可用,因此请注意您放入世界的信息量

于 2014-08-06T19:04:37.090 回答