启动生菜测试套件时控制环境的方法

时间:2012-05-04 17:00:32

标签: python hudson lettuce

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

  

哈德森工作

     
      
  1. 在机器上动态构建配置文件的子作业   根据所需的测试环境运行测试
  2.   
  3. 子作业在跑步机上开始生菜,地形文件然后拿起   动态配置中的值以针对正确的环境运行测试
  4.   
  5. 子作业删除配置文件
  6.   

虽然这会起作用,但对我来说这似乎是一种愚蠢的解决方法。我一直在谷歌搜索,但似乎甚至写莴苣的人认为配置不应该是必要的,如果你想要它,你应该只在测试之外设置环境变量然后从内部地形读取它们。如果没有重新设计生菜以便能够通过命令行参数,是否有人能想到其他方法来实现这一目标?

1 个答案:

答案 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

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