2016-11-08 143 views
1

我有一个测试包,默认情况下在Selenium_webdriver(Chrome)中运行测试,并且有一个选项可以通过env.rb文件中的ENV['headless']在Poltergeist中运行。无头测试可用于部署(未在浏览器上安装浏览器)。Cucumber标签中的环境变量

我有一些测试是特定于无头执行,如检查状态代码,响应头等。我想知道是否有一种方法,我可以使用钩说,而headless=true做x,y或z。

我试过使用标签,但当浏览器运行时会干扰测试。

喜欢的东西:

AfterStep (ENV['headless']) do 
    if page.status_code == 200  
    check_xss_settings 
    end 
end 

是否有可能做我想做什么?

谢谢

+0

当您使用标签时,您遇到了什么问题?如果将标签添加为用于部署的功能或场景,请使用“@Headless”,并使用带有“@Headless”标签的--tags选项。对于浏览器测试没有标签选项,或者如果您不想运行部署测试,请使用“〜@无头”取消“@Headless”选项。 – Grasshopper

+0

对此有帮助吗? http://stackoverflow.com/questions/29713935/how-to-implement-different-data-for-cucumber-scenarios-based-on-environment – fabersky

+0

谢谢fabersky,这是一个很好的阅读,但它似乎是针对java Ruby – Tom

回答

0

我已经确定我要去哪里错了。

在我的钩,我用的是以下几点:

AfterStep (ENV['headless']) do 
    if page.status_code == 200  
    check_xss_settings 
    end 
end 

通过这样做,我能够实现我的结果:

AfterStep do 
    if ENV['headless'] == 'true' 
     if page.status_code == 200 
     check_xss_script 
     end 
    end 
end 

我希望这能为一个人是有帮助类似的位置。