Ruby on rails 3 FixtureClassNotFound:未附加要查找的类

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

这是我的问题。如果我使用ruby命令运行测试,测试都会通过。然而,如果我使用rake测试:函数,它们都会失败,错误如下。我不确定在使用rake任务时,我必须做些什么才能让它们通过,但我非常感谢您提供的任何指导

#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