gpt4 book ai didi

ruby-on-rails - 使用 `rake test` 时出现问题

转载 作者:数据小太阳 更新时间:2023-10-29 07:32:58 26 4
gpt4 key购买 nike

我想知道如何在我的 Rails 应用程序中设置测试。当我运行 rake test 时,首先奇怪的是,它针对我的开发启动了一堆 CREATE TABLE。数据库(嗯……不喜欢这样……)。因此,我启动了 rake test RAILS_ENV=test,甚至尝试了 bundle exec rake test RAILS_ENV=test。现在,CREATE TABLE 是针对我的测试数据库的,但都失败并出现此错误:

** Execute test:units
test/unit/category_test.rb:5:in `test': unknown command 't' (ArgumentError)
from test/unit/category_test.rb:5:in `<class:CategoryTest>'

我在 Rails 3 中使用了基本的生成器并且没有做任何改变。所以我在 caterogy_test.rb 中有这个:

require 'test_helper'

class CategoryTest < ActiveSupport::TestCase
# Replace this with your real tests.

test "the truth" do
assert true
end
end

我使用 Rails 3.0.7 和基本配置。

有什么想法吗?

编辑

我变得很疯狂,做了很多尝试,但似乎都不起作用。当我开始一个包含一些东西的新应用程序时,rake test 工作正常,但是当我在我当前的应用程序上尝试这个时,它总是针对我的开发人员启动。 db 并且根本不起作用。我尝试编辑测试文件,将它们还原,尝试用不同的方式删除/设置测试数据库,尝试不同的 rake 版本,一方面比较我当前应用程序的很多东西,另一方面比较一个全新的应用程序。 .. 什么也没找到.. 帮助!

编辑 2

听起来很蹩脚,但是 rakerake test 做同样的事情是正常的吗?

编辑 3

听起来很奇怪,当我继续研究错误时,我意识到每次我运行 rake test 时,它都会在开发环境而不是测试环境中执行操作(查看日志) .它在我的计算机 OSX 和我们的服务器 FreeBSD 上为所有 Rails 3.0.7 应用程序执行此操作。您确定 rake test 默认情况下应该在测试环境中工作吗?

编辑 4

请帮忙!

编辑 5 - 总结

当在我的电脑或我们的服务器上使用不同的应用程序在 Rails 3.0.7 中运行 rake test 时,它会执行以下操作:

  • 针对开发人员运行CREATE TABLEINSERT INTO 迁移。分贝。
  • 不要清空开发人员。分贝。
  • development.log 写的不是 test.log
  • 还有一个与特定应用程序有关的错误 unknowm comman 't' 的问题。

编辑 6 - 数据库配置

与默认值相比没有任何变化:https://gist.github.com/1006199

编辑 7

rake db:test:prepare --trace -> 没有中断(但继续打印(第一次) https://gist.github.com/1007340

使用 RAILS_ENV="test" 作为 rake,一切顺利。它写在测试日志上。

ruby -I test test/unit/category_test.rbrake 相同的错误,但没有写入开发。或测试日志。

最佳答案

一堆无序的答案:

  • “CREATE TABLE”语句通常意味着您的 test_db 是从头开始创建的(默认情况下,在测试任务之前,会启动 db:migrate)。你确定他们在 dev_db 上被调用了吗?还要检查您的 config/database.yml 以查看是否存在拼写错误(例如:在测试和开发环境中使用相同的表)

  • 您的某些迁移文件中似乎存在错误(该错误会记住迁移中的 block )。

  • “rake test”是默认任务,这就是为什么它会在您不带参数启动“rake”时运行。

编辑:

根据我在编辑中看到的情况,从 5 及以上,看起来您的环境文件存在一些问题。所以尝试仔细检查:* 配置/环境/test.rb* 配置/application.rb* 配置/环境.rb

如果使用 RAILS_ENV="test",一切正常,那么我几乎可以肯定您已经更改了应用程序中的一些默认行为(配置、环境变量、任何特定的 gem?)

此外,在您的 test/test_helper.rb 中,在文件开头添加 RAILS_ENV='test',这应该强制测试环境。

关于ruby-on-rails - 使用 `rake test` 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6199859/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com