Ruby on rails 从rails 2.0.1迁移到2.3.17后,单元测试失败

Ruby on rails 从rails 2.0.1迁移到2.3.17后,单元测试失败,ruby-on-rails,unit-testing,migration,ruby-1.8.7,Ruby On Rails,Unit Testing,Migration,Ruby 1.8.7,从Rails 2.0.1迁移到2.3.17后,单元测试不起作用。对于它们中的每一个,我都会得到相同的错误: “NoMethodError:未定义的方法'assert\u valid\u keys'用于 false:FalseClass” 有线索吗 RUBY版本:1.8.7(2011-02-18补丁级别334)[i686-darwin10.8.0] RUBYGEMS版本:1.8.25 NoMethodError:undefined方法assert\u valid\u keys'for fals

从Rails 2.0.1迁移到2.3.17后,单元测试不起作用。对于它们中的每一个,我都会得到相同的错误:

“NoMethodError:未定义的方法'assert\u valid\u keys'用于 false:FalseClass”

有线索吗

  • RUBY版本:1.8.7(2011-02-18补丁级别334)[i686-darwin10.8.0]
  • RUBYGEMS版本:1.8.25
NoMethodError:undefined方法
assert\u valid\u keys'for false:FalseClass (eval):12:in
run'
/Applications/RubyMine.app/rb/testing/patch/testunit/test/unit/ui/teamcity/testrunner.rb:93:in
send' /Applications/RubyMine.app/rb/testing/patch/testunit/test/unit/ui/teamcity/testrunner.rb:93:in
start\u mediator'

/Applications/RubyMine.app/rb/testing/patch/testunit/test/unit/ui/teamcity/testrunner.rb:81:in
start'`

好的,我想我找到了解决方案

在这个应用程序中,我正在使用插件fixture_scenarios,因此我更新了lib/fixture_scenarios.rb行#33,它是:

connection.transaction(线程当前['open\u transactions']==0)do

connection.transaction(:需要\u new=>Thread.current['open\u transactions']==0)do


现在大多数测试都通过了。

你能举个测试的例子吗?我创建了新的rails 2.3应用程序,并从中获取了默认的test\u helper.rb,创建了
测试“thetruth”do assert true end
。如果我在我的应用程序中运行该测试,仍然会出现相同的错误。好吧,该方法似乎是在rails 3.0中引入的,所以我认为您需要确保您确实使用了2.3。您是否使用了此处描述的无效语法?在rails-23app-environment.rb中,除非定义,否则将设置为
rails\u GEM\u VERSION='2.3.17'?RAILS\u GEM\u版本