Testing Spock/Geb试验污染

Testing Spock/Geb试验污染,testing,grails,cookies,spock,geb,Testing,Grails,Cookies,Spock,Geb,我正在接受某种测试。当我单独运行失败的测试时,它们通过了。当我把它们一起运行时,会出现错误。这些错误与数据库无关。我不能理解这些错误。例如: 第页: 错误模块: 静态内容={ 错误(必需:false){$(“h3.error”)} } 规格: 例外情况: org.openqa.selenium.NoSuchElementException:无法定位元素:{“方法”:“标记名”,“选择器”:“html”} 我不明白,因为模块的内容不是必需的。另外,另一项测试的哪些污染会导致这种情况?我的测试太多了

我正在接受某种测试。当我单独运行失败的测试时,它们通过了。当我把它们一起运行时,会出现错误。这些错误与数据库无关。我不能理解这些错误。例如: 第页:

错误模块: 静态内容={ 错误(必需:false){$(“h3.error”)} }

规格:

例外情况: org.openqa.selenium.NoSuchElementException:无法定位元素:{“方法”:“标记名”,“选择器”:“html”}

我不明白,因为模块的内容不是必需的。另外,另一项测试的哪些污染会导致这种情况?我的测试太多了,无法列出


我唯一的想法是cookies不是由我的程序设置的。有一组cookie具有奇数名称,如“ba743b”、“kvcd”、“kn_ai”等,具有神秘值,如“1361461306476”和“1.1361461306.1.1.utmcsr=(直接)| utmccn=(直接)| utmcmd=(无)”。有人知道这些cookie可能来自哪里,以及如何在测试结束时清除它们吗?这很重要吗?它们不是会话cookie,它们有过期日期。我不知道如何删除这些cookies,我认为这些cookies不是我的代码创建的。但这可能与此无关。

您是否使用Firefox执行测试?该错误是否发生在切换页面之后


如果是这样的话,那么当Firefox驱动程序返回控制以测试代码,同时仍然(重新)加载页面时,您可能遇到了Firefox驱动程序中的错误。当标题为空字符串时,
at()
检查中有时也会出现此错误。我倾向于在抛出异常的行之前添加对
at()
/
verifyAt()
的调用。这是一个肮脏的黑客行为,但我想不出任何更好的方法,它似乎总是有效的。

您的
页面。errorModule
是必需的,您已将
errorModule.error设置为非必需的。如果你有一个工程师的名字就好了。但由于内容不是必需的,我想这可能没关系。让我困惑的是,这种情况并非所有的呼叫都会发生,而是千载难逢。errorModule的内容几乎从未出现过。谢谢你的评论。我将尝试errorModule(等待:true,必需:false)并断言page.errorModule?等
errorModule (wait: true) { module ErrorModule }
assert page.errorModule