Ruby on rails 3 FixtureClassNotFound:未附加要查找的类
这是我的问题。如果我使用ruby命令运行测试,测试都会通过。然而,如果我使用rake测试:函数,它们都会失败,错误如下。我不确定在使用rake任务时,我必须做些什么才能让它们通过,但我非常感谢您提供的任何指导Ruby on rails 3 FixtureClassNotFound:未附加要查找的类,ruby-on-rails-3,functional-testing,Ruby On Rails 3,Functional Testing,这是我的问题。如果我使用ruby命令运行测试,测试都会通过。然而,如果我使用rake测试:函数,它们都会失败,错误如下。我不确定在使用rake任务时,我必须做些什么才能让它们通过,但我非常感谢您提供的任何指导 #tasks_controller_test.rb require File.dirname(__FILE__) + '/../test_helper' class TasksControllerTest < ActionController::TestCase set_f
#tasks_controller_test.rb
require File.dirname(__FILE__) + '/../test_helper'
class TasksControllerTest < ActionController::TestCase
set_fixture_class :Action => 'Task'
fixtures :Action
setup :initialize_test
test "the truth" do
assert true
end
private
def initialize_test
@user = users :one
sign_in @user
@user.confirm!
@task = Action :one # Here's the line that is throwing the error.
end
end
这是一种非常奇怪的处理问题的方法 对于rails,开箱即用,如果您有固定装置,它们将在每次测试之前加载它们 您不需要在控制器测试中明确地加载它们 默认情况下,Rails会自动从中加载所有装置 用于单元和功能测试的测试/夹具文件夹。加载 包括三个步骤:
看来没有人能解决这个问题。所以我只是在这一点上结束它。也许我会换成工厂女工或机械师。错误表明Rails无法确定测试要加载的夹具 我假设这个装置名为Action.yml。Rails是否接受带有大写字母的fixture文件名 根据处的文档,set_fixture_类需要的是类名而不是字符串 因此,我会尝试:
set_fixture_class :myaction => Task
如果我理解正确,我会将fixture文件重命名为myaction.yml,您有一个
Task
模型,其表名为Action
。这意味着您应该拥有app/models/task.rb
和test/fixtures/Action.yml
(或csv)。我说得对吗?只有当你的模型直接映射到表格时才对。这是必需的,因为我使用的是旧数据库。所以我的问题仍然存在(
set_fixture_class :myaction => Task