2013-03-08 86 views
1

从Rails 2.0.1迁移到2.3.17单元测试无法工作之后。对于他们每个人我收到了同样的错误:从rails 2.0.1迁移到2.3.17后,单元测试失败

"NoMethodError: undefined method `assert_valid_keys' for false:FalseClass".

任何线索?

  • RUBY VERSION:1.8.7(2011-02-18 PATCHLEVEL 334)[i686的-darwin10.8.0]
  • RubyGems的VERSION:25年8月1日

NoMethodError: undefined method assert_valid_keys'为假:FalseClass (EVAL):12:在run' /Applications/RubyMine.app/rb/testing/patch/testunit/test/unit/ui/teamcity/testrunner.rb:93:in发送” /Applications/RubyMine.app/rb/testing/patch/testunit/test/unit/ui/teamcity/testrunner.rb:93:in start_mediator' /Applications/RubyMine.app/rb/testing/patch/testunit/test/unit/ui/teamcity/testrunner.rb:81:in start'`

+0

你能发表一个你的测试样子的例子吗? – 2013-03-08 12:31:45

+0

我已经创建了新的rails 2.3应用程序,并从它获取了默认的test_helper.rb并创建了'test'事实“do assert true end'。如果我在我的应用程序中运行该测试,我仍然会得到相同的错误。 – user2148126 2013-03-08 12:55:00

+0

好吧,它似乎是在rails 3.0中引入的方法,所以我认为你需要确保你确实在使用2.3 – 2013-03-08 13:02:29

回答

0

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

在这个程序,我做这个工作,使用插件fixture_scenarios,所以我已经更新的lib/fixture_scenarios.rb线#33是:

connection.transaction(Thread.current['open_transactions'] == 0) do

connection.transaction(:requires_new => Thread.current['open_transactions'] == 0) do

现在大部分测试已通过。