Spock / Geb测试污染

时间:2013-02-21 16:01:51

标签: testing grails cookies spock geb

我得到某种测试污染。当我单独运行失败的测试时,它们会通过。当我一起运行它们时,我会遇到错误。错误与数据库无关。我无法理解错误。例如: 页:

errorModule (wait: true) { module ErrorModule }

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

规格:

assert page.errorModule

给出例外: org.openqa.selenium.NoSuchElementException:无法找到元素:{“method”:“tag name”,“selector”:“html”}

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

我唯一的想法是不是由我的程序设置的cookie。有一堆奇怪的名字,如“ba743b”,“kvcd”,“kn_ai”等,含有神秘的值,如“1361461306476”和“1.1361461306.1.1.utmcsr =(direct)| utmccn =(direct)| utmcmd =(无)”。有谁知道这些cookie可能来自何处以及如何在测试结束时清除它们?这甚至是重要的吗?它们不是会话cookie,它们具有到期日期。我不知道如何删除这些我不认为我的代码创建的cookie。但它可能与此毫无关系。

1 个答案:

答案 0 :(得分:0)

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

如果是这样,那么你可能会在Firefox驱动程序中遇到一个错误,当它仍然(重新)加载页面时将控制返回到测试代码。当title为空字符串时,错误有时也会显示在at()检查中。我倾向于在抛出异常的行之前添加对at() / verifyAt()的调用。这是一个肮脏的黑客,但我不能考虑更好的事情,它似乎总是有效。