当前位置: 首页 > 知识库问答 >
问题:

Spock/GEB试验污染

晋奕
2023-03-14

我受到了某种测试污染。当我单独运行失败测试时,它们会通过。当我把它们一起运行时,我会得到错误。这些错误与数据库无关。我不能理解错误。例如:页面:

errorModule (wait: true) { module ErrorModule }
assert page.errorModule

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

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

共有1个答案

伯俊弼
2023-03-14

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

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

 类似资料:
  • 我在理解GEB/Spock测试中的一个问题时遇到了一些困难。我们正在使用gradle,并试图并行运行我们的测试。据我所知,gradle中的maxParallelForks属性将在单独的JVM中运行测试类。 我遇到的问题是,当我有6个测试类并将maxParallelForks设置为4个时,当测试开始时,我将得到4个测试类并行运行。太棒了!但最后两个班才是问题所在。假设在前4节课中,2节课在1分钟内完

  • 我正在用Geb(0.12.2)和Spock定义一些规范来测试我的前端。我的应用程序的登录系统依赖于我们内部IDP的SSO。一旦我进入我的应用程序的私人部分,如果以前没有在我们的IDP中登录,它将重定向到IDP主页,然后登录并重定向到您最初询问的私人URL。 注销。 删除IDP设置的cookie。 我希望初始化每一个GebSpec类,而不需要任何以前的cookie或以前GebSpec执行中的状态,并

  • 我刚开始使用geb和spock,但是当我只有代码的视图源时,我试图验证网页上显示的图像。任何建议都很感激!我根据以前编写的链接测试建模了这段代码,所以我肯定我遗漏了一些东西。我的页面文件的一个示例是: 我的规范页面的一个示例是:

  • 我在一个扩展GebreportingSpec的类中尝试了这一点: 当然,我在setup()方法中创建了一个新的RemoteWebDriver。 使用这种方法,每个测试都得到一个独特的Sauce Connect会话,结果都以Sauce的形式组织得很好。但是,由于以下原因,所有测试都失败了:

  • 全面披露:我对Geb和Spock都很陌生。

  • 我正在尝试使用Spock运行geb测试。我已经在groovy脚本中编写了所有内容,该脚本位于中,如下所示