我已将此作为黄瓜的指南以及如何使用Geb Github hauner grails-cucmber example
我不确定这是否是正确的方法,我过去使用过Geb ......
测试将从 [some name] Spec.groovy 运行,它将扩展GebReportingSpec ....使用Geb页面模型
而是通过黄瓜从StepDef运行测试......我不太确定,如何整合屏幕截图,我想你是手动完成的:/
我无法使用Firefox版本39,40,41,42在Windows 7下工作。我已经和其他人一起管理过IE!我无法在Linux下查看。最终目标是使用硒网格。两者都能够运行本地和远程。
BuildConfig.groovy
cucumber {
features = ["test/functional/cucumber/features"]
glue = ["test/functional/cucumber/steps", test/functional/cucumber/hooks", "test/functional/cucumber/support"]
tags = ["~@ignore"]
}
CucumberConfig.groovy
def bindingUpdater
def activeBrowser
Before { scenario ->
activeBrowser = new Browser()
bindingUpdater = new BindingUpdater(binding, activeBrowser)
bindingUpdater.initialize()
}
After { scenario ->
bindingUpdater?.remove()
}
支持/ env.groovy
Given(~/^User goes to SomePage$/) { ->
// Write code here that turns the phrase above into concrete actions
to SomePage
at SomePage
}
已编译的小黄瓜功能的示例摘录
baseNavigatorWaiting = true
atCheckWaiting = true
reportsDir = "target/geb-reports"
driver = {
System.setProperty('webdriver.firefox.bin', 'C:\\Program Files (x86)\\Mozilla Firefox 41\\firefox.exe')
//http://docs.seleniumhq.org/docs/04_webdriver_advanced.jsp#using-a-proxy
org.openqa.selenium.Proxy proxy = new org.openqa.selenium.Proxy([autodetect:true]);
DesiredCapabilities cap = new DesiredCapabilities();
cap.setCapability(CapabilityType.PROXY, proxy);
def driverInstance = new FirefoxDriver(cap)
driverInstance.manage().window().maximize()
driverInstance
}
...(snipped other enviroments/functionality)
(p.s。在附注中intellij没有注意到Geb存在于此处以防万一其他人遇到此问题)
编辑 - 包含 GebConfig
PARSE_JS_KEY
答案 0 :(得分:2)
Grails 2.x(据我所知)不支持在测试报告中添加屏幕截图。
我做了一个快速测试,我找到了两种获取截图的可能性。我使用插件的geb sample进行了测试:
<强> CucumberConfig.groovy 强>
cucumber {
// the other settings
plugins = ["html:target/results"]
}
添加此项将告诉黄瓜在target/results
中创建一个html报告。
要在报告中添加屏幕截图,请在After
挂钩中创建它,并将其添加到报告中:
<强> env.groovy 强>
import cucumber.api.Scenario
import org.openqa.selenium.OutputType
After () { Scenario scenario ->
def screenshot = browser.getDriver().getScreenshotAs(OutputType.BYTES)
scenario.embed(screenshot, 'image/png')
bindingUpdater.remove ()
}
这将创建一个包含屏幕截图的测试报告。
可以从步骤中调用browser
对象:
Given(~/^User goes to SomePage$/) { ->
to SomePage
at SomePage
browser.report('SomePage')
}
html / screenshot将写入target/test-reports/geb
。
After
挂钩也会起作用:
After () { Scenario scenario ->
browser.report(scenario.name)
bindingUpdater.remove ()
}