使用 Capybara 和 Minitest 来测试 JavaScript
Using Capybara and Minitest to test JavaScript
这个问题
的几种变体已经被问到,我肯定从阅读这个主题中学到了东西,但大多数答案似乎并不直接适用于这种情况,或者涉及使用 Rspec 或 Cucumber 的解决方案。
我目前正在使用Minitest和Capybara开发测试套件。如果可能的话,我不想引入太多其他宝石,但如果它们是轻量级的,我愿意接受,因为测试已经需要一段时间才能运行。
Rspec有:js => true
,黄瓜有@javascript
,但minitest似乎没有这样的东西。那么,自然的解决方案是切换驱动程序并执行以下操作: Capybara.current_driver = :selenium
,但是当我这样做时,它不起作用,并且我收到 2 个错误(每个启用 js 的测试一个错误)。
我的问题是:为什么我会收到这些错误,我怎样才能使一些基本的JavaScript测试工作?以下是错误:
Component returned failure code: 0x804b0012 (NS_ERROR_UNKNOWN_PROTOCOL) [nsIWebNavigation.loadURI]
Exception `Selenium::WebDriver::Error::UnknownError' at:
/Users/epithelialbiology/.rvm/gems/ruby-1.9.2-p320/gems/selenium-webdriver-2.25.0/lib/selenium/webdriver/remote/response.rb:52:in `assert_ok'
/Users/epithelialbiology/.rvm/gems/ruby-1.9.2-p320/gems/selenium-webdriver-2.25.0/lib/selenium/webdriver/remote/response.rb:15:in `initialize'
/Users/epithelialbiology/.rvm/gems/ruby-1.9.2-p320/gems/selenium-webdriver-2.25.0/lib/selenium/webdriver/remote/http/common.rb:59:in `new'
/Users/epithelialbiology/.rvm/gems/ruby-1.9.2-p320/gems/selenium-webdriver-2.25.0/lib/selenium/webdriver/remote/http/common.rb:59:in `create_response'
/Users/epithelialbiology/.rvm/gems/ruby-1.9.2-p320/gems/selenium-webdriver-2.25.0/lib/selenium/webdriver/remote/http/default.rb:65:in `request'
/Users/epithelialbiology/.rvm/gems/ruby-1.9.2-p320/gems/selenium-webdriver-2.25.0/lib/selenium/webdriver/remote/http/common.rb:40:in `call'
/Users/epithelialbiology/.rvm/gems/ruby-1.9.2-p320/gems/selenium-webdriver-2.25.0/lib/selenium/webdriver/remote/bridge.rb:598:in `raw_execute'
/Users/epithelialbiology/.rvm/gems/ruby-1.9.2-p320/gems/selenium-webdriver-2.25.0/lib/selenium/webdriver/remote/bridge.rb:576:in `execute'
/Users/epithelialbiology/.rvm/gems/ruby-1.9.2-p320/gems/selenium-webdriver-2.25.0/lib/selenium/webdriver/remote/bridge.rb:99:in `get'
/Users/epithelialbiology/.rvm/gems/ruby-1.9.2-p320/gems/selenium-webdriver-2.25.0/lib/selenium/webdriver/common/navigation.rb:14:in `to'
/Users/epithelialbiology/.rvm/gems/ruby-1.9.2-p320/gems/capybara-1.1.2/lib/capybara/selenium/driver.rb:36:in `visit'
/Users/epithelialbiology/.rvm/gems/ruby-1.9.2-p320/gems/capybara-1.1.2/lib/capybara/session.rb:157:in `visit'
/Users/epithelialbiology/.rvm/gems/ruby-1.9.2-p320/gems/capybara-1.1.2/lib/capybara/dsl.rb:161:in `visit'
test/integration/resource_access_test.rb:22:in `block (2 levels) in <top (required)>'
这是另一个错误:
undefined method `[]' for nil:NilClass
Exception `NoMethodError' at:
/Users/epithelialbiology/.rvm/gems/ruby-1.9.2-p320/gems/rack-test-0.6.1/lib/rack/test.rb:171:in `env_for'
/Users/epithelialbiology/.rvm/gems/ruby-1.9.2-p320/gems/rack-test-0.6.1/lib/rack/test.rb:56:in `get'
/Users/epithelialbiology/.rvm/gems/ruby-1.9.2-p320/gems/capybara-1.1.2/lib/capybara/rack_test/browser.rb:62:in `process'
/Users/epithelialbiology/.rvm/gems/ruby-1.9.2-p320/gems/capybara-1.1.2/lib/capybara/rack_test/browser.rb:21:in `visit'
/Users/epithelialbiology/.rvm/gems/ruby-1.9.2-p320/gems/capybara-1.1.2/lib/capybara/rack_test/driver.rb:32:in `visit'
/Users/epithelialbiology/.rvm/gems/ruby-1.9.2-p320/gems/capybara-1.1.2/lib/capybara/session.rb:157:in `visit'
/Users/epithelialbiology/.rvm/gems/ruby-1.9.2-p320/gems/capybara-1.1.2/lib/capybara/dsl.rb:161:in `visit'
test/integration/resource_access_test.rb:40:in `block (2 levels) in <top (required)>'
有谁知道这里会发生什么,以及我如何解决这个问题?
尝试使用以下语法切换 Capybara 驱动程序:
Capybara.current_driver = Capybara.javascript_driver
相关文章:
- 用于测试javascript中异步加载的脚本的工具
- 是否可以测试javascript函数是否是构造函数
- 使用jasmine测试JavaScript回调函数
- 测试 JavaScript Zombie 事件处理程序或 DOM 元素
- 测试JavaScript是否符合异常变量名
- 使用 Capybara 和 Minitest 来测试 JavaScript
- 在CakePHP中测试JavaScript
- Eclipse和Tomcat中的网站开发和测试:javascript被缓存
- 如何使用moment.js测试javascript对象是否为Date
- 在Rails中准确测试JavaScript分析交付系统
- 如何在经过身份验证的页面上测试javascript隐藏/显示行为
- 在 Rails 中测试 JavaScript 视图
- 使用 nodeunit 测试 JavaScript 库 - FileApi, substr undefined
- 如何加载测试 JavaScript/AngularJS 应用程序
- 用Selenium测试javascript生成的html
- 如何测试 javascript 方法是否创建一个对象并调用该对象上的方法
- 测试Javascript框架
- 在浏览器中测试 JavaScript 脚本,而无需创建 html/javascript 测试文件
- 使用 Mocha 测试 JavaScript - 如何使用 console.log 来调试测试
- 如何对 Web 套接字进行单元测试 - JavaScript