【问题标题】:Why is this Model test breaking (not failing) when I run 'rake test:models'?当我运行“rake test:models”时,为什么这个模型测试会中断(没有失败)?
【发布时间】:2013-07-01 19:47:59
【问题描述】:

我正在使用 Rails 4(测试版)和模型测试部分(迭代 B2)进行敏捷 Web 开发。在我在 test/models/product_test.rb 文件中添加以下代码之前,一切都很好。它是从pdf复制粘贴的。当我尝试为模型运行测试时,我遇到了一个奇怪的错误。我也在发布者的forum发帖。

def new_product(image_url)
    Product.new(title: "My Book Title",
            description: "yyy", 
            price: 1, 
            image_url: image_url)
end

test "image url" do
    ok = %w{ fred.gif fred.jpg fred.png FRED.JPG FRED.Jpg http://a.b.c/x/y/z/fred.gif }
    bad = %w{ fred.doc fred.gif/more fred.gif.more }

    ok.each do |name|
        assert new_product(name).valid?, "#{name} shouldn't be invalid"
    end

    bad.each do |name|
        assert new_product(name).invalid?, "#{name} shouldn't be valid"
    end 
end

这是我在终端中运行rake test:models --trace 后遇到的错误。

➜  depot git:(master) ✗ rake test:models --trace  
** Invoke test:models (first_time)  
** Invoke test:prepare (first_time)  
** Invoke db:test:prepare (first_time)  
** Execute db:test:prepare  
** Invoke db:test:load (first_time)  
** Invoke db:test:purge (first_time)  
** Invoke environment (first_time)  
** Execute environment  
** Invoke db:load_config (first_time)  
** Execute db:load_config  
** Execute db:test:purge  
** Execute db:test:load  
** Invoke db:test:load_schema (first_time)  
** Invoke db:test:purge   
** Execute db:test:load_schema  
** Invoke db:schema:load (first_time)  
** Invoke environment   
** Invoke db:load_config   
** Execute db:schema:load  
** Invoke db:abort_if_pending_migrations (first_time)  
** Invoke environment   
** Execute db:abort_if_pending_migrations  
** Execute test:prepare  
** Execute test:models  
rake aborted!  
unknown command 'i'  
/Users/admin/Dropbox/code/rails/depot/test/models/product_test.rb:39:in `test'  
/Users/admin/Dropbox/code/rails/depot/test/models/product_test.rb:39:in `<top (required)>'  
/Users/admin/.rvm/gems/ruby-1.9.3-p385@rails3tut/gems/activesupport-4.0.0.rc1/lib/active_support/dependencies.rb:228:in `require'  
/Users/admin/.rvm/gems/ruby-1.9.3-p385@rails3tut/gems/activesupport-4.0.0.rc1/lib/active_support/dependencies.rb:228:in `block in require'  
/Users/admin/.rvm/gems/ruby-1.9.3-p385@rails3tut/gems/activesupport-4.0.0.rc1/lib/active_support/dependencies.rb:213:in `load_dependency'  
/Users/admin/.rvm/gems/ruby-1.9.3-p385@rails3tut/gems/activesupport-4.0.0.rc1/lib/active_support/dependencies.rb:228:in `require'  
/Users/admin/.rvm/gems/ruby-1.9.3-p385@rails3tut/gems/railties-4.0.0.rc1/lib/rails/test_unit/sub_test_task.rb:73:in `block (3 levels) in define'  
/Users/admin/.rvm/gems/ruby-1.9.3-p385@rails3tut/gems/railties-4.0.0.rc1/lib/rails/test_unit/sub_test_task.rb:73:in `each'  
/Users/admin/.rvm/gems/ruby-1.9.3-p385@rails3tut/gems/railties-4.0.0.rc1/lib/rails/test_unit/sub_test_task.rb:73:in `block (2 levels) in define'  
/Users/admin/.rvm/gems/ruby-1.9.3-p385@rails3tut/gems/railties-4.0.0.rc1/lib/rails/test_unit/sub_test_task.rb:72:in `each'  
/Users/admin/.rvm/gems/ruby-1.9.3-p385@rails3tut/gems/railties-4.0.0.rc1/lib/rails/test_unit/sub_test_task.rb:72:in `block in define'  
/Users/admin/.rvm/gems/ruby-1.9.3-p385@rails3tut/gems/rake-10.1.0/lib/rake/task.rb:236:in `call'  
/Users/admin/.rvm/gems/ruby-1.9.3-p385@rails3tut/gems/rake-10.1.0/lib/rake/task.rb:236:in `block in execute'  
/Users/admin/.rvm/gems/ruby-1.9.3-p385@rails3tut/gems/rake-10.1.0/lib/rake/task.rb:231:in `each'  
/Users/admin/.rvm/gems/ruby-1.9.3-p385@rails3tut/gems/rake-10.1.0/lib/rake/task.rb:231:in `execute'  
/Users/admin/.rvm/gems/ruby-1.9.3-p385@rails3tut/gems/rake-10.1.0/lib/rake/task.rb:175:in `block in invoke_with_call_chain'  
/Users/admin/.rvm/rubies/ruby-1.9.3-p385/lib/ruby/1.9.1/monitor.rb:211:in `mon_synchronize'  
/Users/admin/.rvm/gems/ruby-1.9.3-p385@rails3tut/gems/rake-10.1.0/lib/rake/task.rb:168:in `invoke_with_call_chain'  
/Users/admin/.rvm/gems/ruby-1.9.3-p385@rails3tut/gems/rake-10.1.0/lib/rake/task.rb:161:in `invoke'  
/Users/admin/.rvm/gems/ruby-1.9.3-p385@rails3tut/gems/rake-10.1.0/lib/rake/application.rb:149:in `invoke_task'  
/Users/admin/.rvm/gems/ruby-1.9.3-p385@rails3tut/gems/rake-10.1.0/lib/rake/application.rb:106:in `block (2 levels) in top_level'  
/Users/admin/.rvm/gems/ruby-1.9.3-p385@rails3tut/gems/rake-10.1.0/lib/rake/application.rb:106:in `each'  
/Users/admin/.rvm/gems/ruby-1.9.3-p385@rails3tut/gems/rake-10.1.0/lib/rake/application.rb:106:in `block in top_level'  
/Users/admin/.rvm/gems/ruby-1.9.3-p385@rails3tut/gems/rake-10.1.0/lib/rake/application.rb:115:in `run_with_threads'  
/Users/admin/.rvm/gems/ruby-1.9.3-p385@rails3tut/gems/rake-10.1.0/lib/rake/application.rb:100:in `top_level'  
/Users/admin/.rvm/gems/ruby-1.9.3-p385@rails3tut/gems/rake-10.1.0/lib/rake/application.rb:78:in `block in run'  
/Users/admin/.rvm/gems/ruby-1.9.3-p385@rails3tut/gems/rake-10.1.0/lib/rake/application.rb:165:in `standard_exception_handling'  
/Users/admin/.rvm/gems/ruby-1.9.3-p385@rails3tut/gems/rake-10.1.0/lib/rake/application.rb:75:in `run'  
/Users/admin/.rvm/gems/ruby-1.9.3-p385@rails3tut/gems/rake-10.1.0/bin/rake:33:in `<top (required)>'  
/Users/admin/.rvm/gems/ruby-1.9.3-p385@rails3tut/bin/rake:23:in `load'  
/Users/admin/.rvm/gems/ruby-1.9.3-p385@rails3tut/bin/rake:23:in `<main>'  
Tasks: TOP => test:models  
Run options: --seed 9617  

# Running tests:  

..  

Finished tests in 0.550033s, 3.6361 tests/s, 18.1807 assertions/s.  

【问题讨论】:

    标签: ruby-on-rails testing ruby-on-rails-4 rake-test


    【解决方案1】:

    跟踪告诉您,您在文件 product_test.rb 的第 39 行有 unknown command 'i'(这就是 product_test.rb:39 的含义。

    你在那条线上的某个地方有一些错位的i吗?它可能在您引用的 sn-p 之外——如果没有您的行号,我无法判断。

    【讨论】:

    • 屏幕外没有任何内容。这里有更多信息:当我将第 39 行编辑为如下所示时:test "mage url" do 错误为unknown command 'm' 这让我认为代码在某些时候没有被正确解析。
    • @Nikola 您说您是从 PDF 复制和粘贴的——那里可能有一些你不想要的“隐藏”字符——可能是智能/弯引号?删除该行并手动输入——这能解决您的问题吗?
    • 好吧,我最初是手动输入整个内容并得到同样的错误。我后来从 pdf 中复制并粘贴了它,因为我认为我输入了错误的东西。在这两种情况下我都会遇到同样的错误。
    • 我发现了我的错误。所有测试都需要在 class ProductTest &lt; ActiveSupport::TestCase ... end 内,最后两个在 ProductTest 类之外。
    • @Nikola 很高兴你知道了!
    猜你喜欢
    • 2021-02-27
    • 1970-01-01
    • 2021-01-06
    • 1970-01-01
    • 1970-01-01
    • 2010-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多