首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >运行Geb + spock无头测试

运行Geb + spock无头测试
EN

Stack Overflow用户
提问于 2014-06-12 13:04:39
回答 1查看 1.1K关注 0票数 0

我有一些针对grails应用程序的geb功能测试。

当从终端或IDE执行时,测试正在按预期工作。尽管这些测试需要由hudson执行,所以它们是使用Xvfb以无头模式运行的。

问题是,测试总是失败,或者在没有意义的地方返回诸如RequiredPageContentNotPresent和陈旧元素引用异常之类的错误。

例如:(在上面对LicencePage进行了验证,并且页面没有更改)

代码语言:javascript
复制
when:
   addDocument(Data.Test_Doc_name,Data.Test_Doc_file)

有时扔

代码语言:javascript
复制
 Failure:  Add Actual Licence (HomePageSpec)
|  geb.error.RequiredPageContentNotPresent: The required page content 'addDocument - SimplePageContent (owner: LicencePage, args: [Functional Test Doc, /var/lib/hudson/jobs/KB-Functional_Tests/workspace/app/../manual_test_data/so_v3/os_test_1], value: null)' is not present
    at geb.content.TemplateDerivedPageContent.require(TemplateDerivedPageContent.groovy:61)
    at geb.content.PageContentTemplate.create_closure1(PageContentTemplate.groovy:63)
    at geb.content.PageContentTemplate.create(PageContentTemplate.groovy:82)
    at geb.content.PageContentTemplate.get(PageContentTemplate.groovy:54)
    at geb.content.NavigableSupport.getContent(NavigableSupport.groovy:45)
    at geb.content.NavigableSupport.methodMissing(NavigableSupport.groovy:121)
    at geb.Browser.methodMissing(Browser.groovy:194)
    at geb.spock.GebSpec.methodMissing(GebSpec.groovy:51)
    at HomePageSpec.Add Actual Licence (HomePageSpec.groovy:228)

addDocument()方法是在‘抽象’页面上定义的,LicencePage正在扩展该页面。在大多数情况下,如果我将方法代码直接复制到我的Spec中,它就会工作,尽管它会破坏我在测试页面上的所有结构。

有人有使用Xvfb运行geb测试的经验吗?你面对过这些问题吗?

所有测试都是在本地执行时通过的,这不是一个数据问题,因为DB总是被清除的。

而且,在不进行任何更改的情况下,测试是不确定的(在hudson上),因此并不总是引发上述异常。没有任何改变,测试有时是成功的,有时是失败的。

EN

回答 1

Stack Overflow用户

发布于 2014-06-13 14:28:58

你所描述的似乎是一个松散的测试套件的症状。不久前,我们也面临着这个问题。一个很好的起点是这个介绍性 (大约分钟)。( 35)和文档关于在geb中等待的事情。

如果您认为,这可能与xvfb有关(在这里我没有经验),您可以尝试使用幻影作为测试运行程序,并检查它是否正确工作。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24185173

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档