- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我正在运行 SQLite 并尝试使用固定装置加载正确的数据,以便使用 capybara 通过浏览器进行显示和测试。
我的测试套件使用带有 Capybara 和 Poltergeist 的 Minitest 作为驱动程序。我的 test_helper.rb
文件的相关部分如下所示:
require "minitest/reporters"
reporters = []
reporters << Minitest::Reporters::SpecReporter.new
Minitest::Reporters.use! reporters, ENV, Minitest.backtrace_filter
require "minitest/rails/capybara"
Capybara.register_driver :poltergeist do |app|
Capybara::Poltergeist::Driver.new(app, :js_errors => false)
end
Capybara.default_driver = :poltergeist
Capybara.current_driver = :poltergeist
Capybara.javascript_driver = :poltergeist
但是,我有一个简单的测试,可以为正在运行的 Web 应用程序 stub 用户访问级别登录,然后简单地访问该路由。
但是,它在我使用的“用户访问 stub ”方法上失败了。看起来像 Core::User.any_instance.stubs(etc...)
,它只是返回一个用户模型。
无论如何,我得到的确切错误是:
ActiveRecord::StatementInvalid: ActiveRecord::StatementInvalid: SQLite3::BusyException: database is locked: commit transaction
由于我使用固定装置,这可能是一个数据库清理问题(我现在不使用它,因为我目前只使用预先创建的固定装置)我从未将数据库清理与 minitest 一起使用,因为我只熟悉将它与 rspec 一起使用还有工厂女孩。
最佳答案
该错误告诉您另一个数据库连接已打开 sqlite 进行写入(它可以处理多个读取器,但一次只能处理一个写入器)。您没有显示您的实际测试或 stub ,因此不可能具体说明您的问题出在哪里,但很可能您已发出请求,然后在发生时运行一些其他数据库访问(例如,您是否预加载了对象 stub 返回,还是在执行 stub 时加载它?)。
如果您的应用程序不使用 sqlite 作为数据库,则切换到应用程序将在生产中使用的数据库上进行测试。此外, stub 是功能测试中的反模式,您应该只创建适当的记录并处理它们。
关于ruby-on-rails - SQLite3 :Busy exception with Capybara/Poltergeist,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44662005/
我想从 Selenium 切换到 Poltergeist,但我需要模拟一个条形码扫描仪,看起来像键盘输入 标签。我将此代码与 Selenium 一起使用: native.send_keys(send_
在 rspec 执行的每个 poltergeist 测试中,如果我使用以下命令创建新 session : Capybara.session_name="some_session_name" phant
我有一个名称中带有冒号的 CSS 选择器,这显然是个问题。 例子: selector = 'input#billing:street1' find(selector) 我收到以下错误消息: The b
现在我在 Capybara 上使用 selenium 驱动程序,但我想切换到使用 Poltergeist。不过,我正在测试的许多界面都涉及在页面上的特定位置拖放元素。我编写了以下拖放方法,该方法适用于
当我单击按钮时,会显示引导模式弹出窗口。我尝试使用如下所示的 Poltergeist 功能单击“确定”或“取消”按钮,但没有成功。要么功能不起作用,要么点击外部。 Cancel OK click_
我试图了解什么是 Poltergeist 反模式,以及它与 Command 或 Delegate 模式有何不同。 我读了: http://en.wikipedia.org/wiki/Poltergei
我正在使用 PhantomJS 和 poltergeist 来模拟浏览器,但是我不确定如何指定要在代码中使用的代理: require 'capybara' require 'capybara/dsl'
我正在玩 capybara /闹鬼完美组合,但我无法正确调试。我正在测试一个简单的脚本: logger = Logger.new "./log/who-scored-com.log" Capybara
我四处搜索,但找不到办法做到这一点。 我们正在 EmberJS/Rails 应用程序上的 cucumber 功能中使用 Poltergeist 驱动程序运行 Capybara 测试。我无法使用 pag
我不知道如何在 capybara poltergeist 中单击链接 href,我的测试中有这样的示例代码 it "test", :driver => :poltergeist do page.f
我正在使用 Poltergeist/Capybara对于我的测试: Capybara.register_driver :poltergeist do |app| Capybara::Polterg
测试环境:Capybara、poltergeist、phantomjs。 当我单击测试用例中的链接时,会打开一个新窗口。我能够切换到新窗口并使用 selenium 驱动程序验证文本。但是,我无法使用
假设我在 Mac OS X 上安装了 PhantomJS,我可以编写一个普通的旧 Ruby 脚本(没有 Cucumber,没有 RSpec)来驱动 Poltergeist 吗?换句话说,我想要一些 g
使用rspec-rails-3.5.2,poltergeist-1.11.0和capybara-2.10.1 我创建了一个音频对象: Bart.pumpAudio = new Audio("asset
我遇到异常: Capybara::Poltergeist::JavascriptError 和调试输出: "args"=>[[{"message"=>"ReferenceError: Can't fi
尝试禁用或删除 Cucumber 测试的本地存储。 我尝试了以下方法: page.driver.execute_script("localStorage.clear()") 但我收到以下错误 One
我在我的规范中收到了一个特定的警告(使用 poltergeist): Viewport argument key "minimal-ui" not recognized and ignored. 它正
有人知道如何将 capybara poltergeist 的用户代理覆盖到移动用户代理以进行测试吗? 我发现了一些有关为 selenium webdriver 配置它的信息: http://blog.
看来我正在回顾 SO 帖子中采取的步骤:Capybara, Poltergeist and Phantomjs and giving an empty response in body . (如果你愿
我正在使用带有 Poltergeist 驱动程序的 Capybara。我的问题是:如何获取节点的 HTML(字符串)? 我读到过使用 RackTest 驱动程序你可以像这样得到它: find("tab
我是一名优秀的程序员,十分优秀!