测试应用程序时“在测试环境中激活Web控制台”

时间:2016-02-16 16:46:03

标签: ruby-on-rails ruby

我是Rails的新手。因此,如果这是一个愚蠢的问题,请提前道歉。我已经阅读了Michael Heartl的书,并尝试自己编写应用程序。

我已经编写了一些基本测试,但在尝试使用

测试应用时

$ bundle exec rake test

我在终端上收到以下消息

Web Console is activated in the test environment, which is
usually a mistake. To ensure it's only activated in development
mode, move it to the development group of your Gemfile:

    gem 'web-console', group: :development

If you still want to run it the test environment (and know
what you are doing), put this in your Rails application
configuration:

    config.web_console.development_only = false

当我将上述内容添加到development.rb时,它仍然没有什么区别。

请帮助我理解我做错了什么。

4 个答案:

答案 0 :(得分:9)

您需要做的是确保在Gemfile中只在组开发中加载了行gem 'web-console'

你可以发布你的Gemfile吗?通过这种方式,我们可以看出这是否是导致它的原因。

在你的Gemfile中它应该是:

gem 'web-console', group: :development

group :development do
  gem 'web-console'
end

答案 1 :(得分:1)

如果您有此行,请在Gem文件中

gem 'web-console', '~> 2.0'

删除它。

然后运行

$ gem install bundler

$ bundle install --without production

答案 2 :(得分:1)

我也经历过Michael Hartl的课程。我知道Gemfile声明你应该按照它的方式拥有它,但它会显示该消息。如果您不想更改Gemfile并将其保留为书中的方式,则可以转到config>环境> test.rb并在下面的行中添加。

config.web_console.development_only = false

保存这个,你很高兴。

答案 3 :(得分:0)

我也在和Michael Heartl的书一起学习ROR并遇到同样的问题! 帮助我的是为应用程序的Gemfile添加一个'guard'宝石。 所以Gemfile的部分看起来像这样:

group :development do

  gem 'sqlite3'

  gem 'byebug'

  gem 'spring'

  gem 'web-console', '~> 2.0'

end


group :test do

  gem 'minitest-reporters'

  gem 'mini_backtrace'

  gem 'guard'

  gem 'guard-minitest'

end

更改代码后再运行以下命令:

bundle install --without production

在这些操作之后,测试由命令执行:

bundle exec rake test