当前位置: 首页 > 面试题库 >

与Selenium一起运行时,为什么我的Cucumber测试失败了?

萧晔
2023-03-14
问题内容

我正在使用Cucumber / Capybara组合测试Rails
3应用程序。我还尝试使用Selenium测试一些特定于JavaScript的场景,但是遇到了我不理解的怪异难题。

我对黄瓜/水豚的经验很低,对selenium的经验为零。

这是场景:

Scenario: Browsing events
  Given many events exist
  And I am on the events page
  Then I should see a list of 15 events
  When I follow the first event
  Then I should be on the event page
  And I should see a google map
  And I should see the event details

当该方案在RackTest下运行时,一直进行到Google Map步骤,此刻它失败了,因为没有JavaScript。这是预期的。

当我使用默认的JavaScript驱动程序(Selenium)运行测试时,它在第三步失败(我应该看到15个事件的列表)。当我观察浏览器窗口时,实际上事件列表根本不包含任何事件-
几乎就像它们在数据库中不存在一样。

顺便说一下,第一步(存在许多事件)使用FactoryGirl创建事件负载。

因为这对我来说都是新事物,所以我想知道自己是否被典型的陷阱所吸引吗?除了从进行标准html" target="_blank">安装外,我没有进行任何配置更改rails g cucumber:install。另外,如果相关,我正在使用OSX。

谢谢


问题答案:

我猜想您正在尝试将事务性固定装置(默认行为)与Selenium一起使用,但这行不通。当浏览器分别调用Rails应用程序时,在测试内管理的事务不在范围内,因此它无法查看测试已创建的任何未提交的数据。

除了使用事务处理固定装置外,您还需要使用数据库清洁器之一。

https://github.com/bmabey/database_cleaner

编辑:

我后来才知道,这
可以使用的事务灯具采用Selenium测试,性能更好,如果你做的(信贷基拉科里纳的答案)。有关详细信息,请参见http://pastie.org/1745020。



 类似资料:
  • 不要与之前提出的问题混淆“为什么我的测试在一起运行时失败,但单独通过?” 我有一个任务,我需要修改JUnit测试类来处理多个数据库测试。在实现之前,我需要确保所有测试都在运行,没有失败。令我困惑的是,现在当我一起运行所有的类时,它显示它运行时没有失败。当我运行一个特定的类时,它突然失败了,如果我重复它,结果仍然存在。 这可能是什么原因造成的? 我自己没有写测试,因此我对测试内容的了解是有限的。不过

  • 这是我的整个测试课程: 有3个单元测试,它们在单独运行时都通过了,但当我运行整个测试类时,我的第2个和第3个测试失败,错误如下: 我已经想尽一切办法来解决这个问题: 我将测试实例化下的类移动到@Before函数中 我尝试创建@After函数并调用Mockito。重置我的模拟 我应该提到的是,我正在使用nhaarman。mockitokotlin2库和argumentCaptor。 关于为什么这些测

  • 我正在尝试创建一个名为<code>AuditScope<code>的自定义范围类,通过<code>AuditScope.current<code>可以访问当前范围。 如果有嵌套的作用域,则当前作用域是嵌套最多的作用域。 我希望这是线程安全的,所以我使用来确保当前范围属于当前异步上下文,并且不会与其他请求发生冲突。如果你们有人遇到过,这类似于类。 下面是我的作用域类: 我的所有测试都单独通过,但是如

  • 如果我运行特定的场景,它都是绿色的。如果我只运行cucumber套件(又名。耙cucumber),它都是绿色的。但是,如果我运行完整的测试套件,(又名。耙),单个场景失败。 我假设这与数据库的状态和我的配置有关。我编写了cucumber场景以假设最初为空的数据库,并且我正在为各个场景构建小型数据集。 我正在使用DatabaseCleaner和截断策略,我的理解是,这将清除数据库。我弄错了吗?单元测

  • 问题内容: 发生了最奇怪的事情,我的测试运行正常,但现在不再,我完全没有更改代码,这里是一个例外: 问题答案: 我看到您正在使用Eclipse,但您是否还在使用其他外部构建/测试工具,例如Ant或Maven?有时,在同时使用其他外部工具时,Eclipse可能会不同步。 如果使用外部工具,请执行清理生成的工件所需的所有操作(例如mvn clean)。然后刷新Eclipse项目并按照前面的建议进行干净

  • 我目前正在做一个学校的作业,我正在努力与测试部分。出于某种原因,单元测试单独运行时运行良好,但一起运行时就不行了。我知道这与我在他们之间共享对象有关,而我不应该基于我以前的搜索,但我一生都无法找出需要改变什么来解决这个问题。下面是ApplientService类和ApplientServiceTest类的代码。任何帮助都将非常感谢,因为我已经被困在这个问题上一段时间了,现在知道这可能是其他人会立即