Ruby on rails Rake测试错误-UserControllerTest中已经定义了Test_应获得新的测试

Ruby on rails Rake测试错误-UserControllerTest中已经定义了Test_应获得新的测试,ruby-on-rails,ruby,rake-test,Ruby On Rails,Ruby,Rake Test,我现在正在读第六章,关于RoR教程Hartl的“了解建模用户”。而且,当我运行rake测试时,我遇到了一个问题-我经常收到如下所示的错误消息: /u$ bundle exec rake test rake aborted! test_should_get_new is already defined in UsersControllerTest /Users/joebcvan/.rvm/gems/ruby-2.2.0@global/gems/activesupport- 4.2.0/

我现在正在读第六章,关于RoR教程Hartl的“了解建模用户”。而且,当我运行rake测试时,我遇到了一个问题-我经常收到如下所示的错误消息:

/u$ bundle exec rake test
rake aborted!
test_should_get_new is already defined in UsersControllerTest
/Users/joebcvan/.rvm/gems/ruby-2.2.0@global/gems/activesupport-      
4.2.0/lib/active_support/testing/declarative.rb:14:in `test'
.
.
.

/Users/joebcvan/.rvm/gems/ruby-2.2.0@global/gems/railties-    
4.2.0/lib/rails/test_unit/sub_test_task.rb:20:in `invoke_rake_task'
/Users/joebcvan/.rvm/gems/ruby-2.2.0@global/gems/railties-
4.2.0/lib/rails/test_unit/testing.rake:8:in `block in <top (required)>'
Tasks: TOP => test:run
(See full trace by running task with --trace)
并运行了rake测试,错误消息现在显示如下:

  1) Error:
SiteLayoutTest#test_should_get_home:
SyntaxError: /Users/joebcvan/workspace/sample_app/app/models/user.rb:5: syntax         
error, unexpected ':', expecting keyword_end
        format: { with: VALID_EMAIL_REGEX}
           ^


Error:
SiteLayoutTest#test_should_get_home:
NoMethodError: undefined method `each' for nil:NilClass



  2) Error:
SiteLayoutTest#test_should_get_help:
SyntaxError: /Users/joebcvan/workspace/sample_app/app/models/user.rb:5: syntax 
error, unexpected ':', expecting keyword_end
        format: { with: VALID_EMAIL_REGEX}
           ^


Error:
SiteLayoutTest#test_should_get_help:
NoMethodError: undefined method `each' for nil:NilClass

.
.
.
.
 12) Error:
UserTest#test_name_should_not_be_too_long:
SyntaxError: /Users/joebcvan/workspace/sample_app/app/models/user.rb:5: syntax     
error, unexpected ':', expecting keyword_end
        format: { with: VALID_EMAIL_REGEX}
           ^



 13) Error:
UserTest#test_should_be_valid:
SyntaxError: /Users/joebcvan/workspace/sample_app/app/models/user.rb:5: syntax 
error, unexpected ':', expecting keyword_end
        format: { with: VALID_EMAIL_REGEX}
           ^


13 runs, 0 assertions, 0 failures, 13 errors, 0 skips
现在我被卡住了。。我是RoR的初学者,我感到无助。。。我不知道如何找出这些错误代码

我将非常感谢您的专家建议


谢谢。

这些错误告诉了您许多事情,但可能都与第一个错误有关

合成错误:

语法错误是无效代码。Ruby解析器无法理解它,异常很好地向您显示了有问题的行,并告诉您行号:

format: { with: VALID_EMAIL_REGEX}
      ^
没想到会有冒号。我不能告诉你的是,你是否缺少一个开括号,或者前面一行没有{,你必须仔细检查你的代码

有零的吗

该行:

NoMethodError: undefined method `each' for nil:NilClass
表示您正试图对未设置的变量调用each方法。在这种情况下,您似乎正在尝试遍历集合。nil是任何变量的默认值,直到您使用其他内容设置它为止

您所有的例外情况都是这两种情况的变体。

提示: 我想补充一些可能对其他人有帮助的事件。 在测试出错后进行修复时,请注意您的下一个更改可能没有响应,并保持显示相同的错误: 然后,您可能需要为该错误终止现有进程。 试一试

正在查找你的应用程序例如:示例应用程序

$23507 ttys004    0:00.36 spring server | sample_app | started 2 mins ago
然后杀死

$kill -9 23507

现在运行“rails测试”并继续修复它。

听起来好像有什么东西正在加载此文件两次,或者您在另一个文件中定义了UsersControllerTest
$ps -a
$23507 ttys004    0:00.36 spring server | sample_app | started 2 mins ago
$kill -9 23507