Tag: 测试

Rails 2.3.2unit testing在使用普通ruby运行时通过,在使用rake测试运行时失败:单位

在unit testing中创建记录时,当使用rake test:units运行时,我得到一个’ActiveRecord :: RecordInvalid’。 当我使用ruby(’ruby unit / blah_test.rb’)手动运行unit testing时,我没有收到此错误。 我已经将问题缩小到我的模型中存在的validation。 它是一个包含validation,它实际上是针对不同的模型执行查找以获取有效值。 我认为这与没有及时加载的灯具有关,但我的test_helper.rb中确实有’灯具:全部’(我也试过在unit testing中加入’灯具:全部’。 有没有人对如何进一步缩小范围有任何建议? 谢谢。

在rails上的ruby中运行测试时有一个默认端口

我试图用rake spec我运行我的测试我使用rspec,capybara与selenium作为webdriver。 问题是我什么时候尝试运行规范它每次都在不同的端口启动测试环境。 我不希望这发生,因为它弄乱了我的Facebook登录。 我怎样才能让环境每次都在同一个端口启动。 请帮忙!

RSpec + Capybara请求规格w / JS无法正常工作

使用Javascript时,我无法获得请求规范。 如果我在没有Javascript的情况下运行它们,我的规范就会通过 (该页面可以使用或不使用JS)。 具体来说,当我做Post.should have(1).record这样的断言时,规范就失败了。 Capybara只是不从DB中获取记录,并且在运行之间不会清理数据库。 我已经尝试使用DatabaseCleaner禁用事务管道 – 我猜这是常见的方法。 没有骰子。 我也尝试(并且,理想情况下更喜欢)在没有DatabaseCleaner的情况下运行,使用事务夹具并强制AR在线程之间共享相同的连接( JoséValim描述的补丁 )。 再一次,没有骰子。 此外,我也试过在Capybara-webkit和Selenium之间切换 – 问题仍然存在。 我已经提出了一个只有一个基本的Post脚手架的示例应用程序,它复制了这个问题: https : //github.com/cabgfx/js-specs有一个带有事务夹具和AR共享连接的spec_helper.rb,以及一个spec_helper_database_cleaner。 rb用于其他场景。 我通常使用Spork,但我在spec_helper.rb文件中都禁用了它,只是为了消除潜在的失败点(在两个应用程序中;“真正的”和示例应用程序)。 我在Macbook Air上使用Pow进行本地开发,使用MRI 1.9.3至RVM运行OS X 10.7.3。 (我也试过1.9.2)。 希望我有意义 – 任何指导/帮助/指针都非常感谢!

如何在Rails测试中测试params哈希?

以下生成错误:“未定义的局部变量或方法`params’” assert_equal params[:recipient_id], users(:one).id 你如何测试params哈希? 另外,如果存在params,你如何测试assert_redirect ? params附加到URL,因此对model_path或类似的测试失败。 在Rails 3中使用内置测试类。

在新的Rails 3项目中未定义的方法`use_transactional_fixtures =’

尝试使用MongoDB和Mongoid在Rails3项目中运行测试时出错: undefined method `use_transactional_fixtures=’ for ActiveSupport::TestCase:Class 这是一个在3.0.7上运行的全新项目。 我的test_helper.rb文件就是这样的: ENV[“RAILS_ENV”] = “test” require File.expand_path(‘../../config/environment’, __FILE__) require ‘rails/test_help’ class ActiveSupport::TestCase self.use_transactional_fixtures = true end 这是一个ActiveRecord唯一的方法吗? 我在其他也使用ActiveSupport :: TestCase的rails项目中没有这个问题。 此外,我使用Fabricator生成我的测试数据,但这并不能解释这个错误。

使用Minitest测试控制器

我正在尝试使用Minitest找到测试控制器的示例,但我只发现了一对,只是validation了呈现的模板以及返回的“成功”。 这对我来说似乎没什么帮助。 Minitest用于测试控制器吗? Railscast( http://railscasts.com/episodes/327-minitest-with-rails )以及我发现的其他几篇文章似乎都在使用Minitest进行模型测试,并与Capybara进行集成测试。 控制器测试怎么样? 他们可以用Minitest测试吗? 如果是这样,是否有任何实际测试操作的真实示例? 在经过几个小时的搜索之后,我找不到任何东西似乎很奇怪。 我知道这很模糊,但是我想决定是否应该使用RSpec或Minitest,但是如果不知道如何使用Minitest真正测试控制器,我不知道它是如何真正的选择,但我继续阅读一些关于它的一般好评如潮。

Factory_girl与validates_presence_of有__的关系

我有2个型号: # user.rb class User :destroy end # profile.rb class Profile < ActiveRecord::Base belongs_to :user validates_presence_of :user end # user_factory.rb Factory.define :user do |u| u.login "test" u.association :profile end 我想做这个: @user = Factory(:user) => # @user.profile => # @user = Factory.build(:user) => # @user.profile => # 但这不起作用! 它告诉我,我的个人资料模型不正确,因为没有用户! (它在用户之前保存配置文件,因此没有user_id …) 我怎样才能解决这个问题? 尝试了一切…… :(我需要调用Factory.create(:user)… UPDATE 修复了这个问题 […]

rubyMine’无法将测试报告者附加到测试框架’

运行所有模型测试时,检测到rubyMine’MiniTest框架’错误。 我可以在常规命令行运行所有模型测试。 例如rake spec:models 当我使用rubyMine时: 我可以运行一个模型测试。 但是,当我尝试在模型中运行所有测试时,我得到了 MiniTest framework was detected. It is a limited version of original Test::Unit framework. RubyMine/IDEA Ruby plugin test runner requires full-featured version of the framework, otherwise default console tests reporter will be used instead. Please install ‘test-unit’ gem and activate it on runtime. 我尝试将’test-unit’添加到我的Gemfile并重新绑定,但现在得到: `/home/durrantm/.rvm/rubies/ruby-1.9.2-p180/bin/ruby -e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift) /home/durrantm/Downloads/RubyMine-3.2.3/rb/testing/runner/tunit_in_folder_runner.rb Testing […]

将所有外发电子邮件重定向到单个地址以进行测试

在Ruby on Rails中,我处于这样一种情况:我希望我的应用程序(在特定的测试环境中)拦截应用程序生成的所有外发电子邮件,而是将它们发送到不同的测试地址(也可能修改正文)说“最初发送到:……”)。 我看到ActionMailer有一些钩子来观察或拦截邮件,但如果有更简单的方法,我不想自己动手解决。 建议?

使用Cucumber测试在rails3上进行uploadify

我想在rails 3上的ruby上进行黄瓜测试。我试图点击capybara的上传按钮,但因为它既不是按钮也不是链接。 此外,它隐藏了text_field,所以我不能写“当我填写”上传“with”text.txt“”。 如果有人解决了这个问题,请在此处提供帮助。