我已经安装了test-unit
和rspec
(以及-core
, -expectations
, -mocks
和-rails
版本2.6.x)。当我运行rails new foo
命令时,它使用test-unit
而不是rspec
来生成测试存根文件。
是否有一个选项,我可以告诉rails使用rspec来生成测试代替?
下面应该可以工作:
命令行:
rails new MYAPP -T # The -T option tells rails not to include Test::Unit
在Gemfile :
gem 'rspec-rails'
命令行:
bundle install
rails g rspec:install
创建新的rails应用程序
rails new <app_name> -T
或者从现有应用程序中删除test
目录:
rm -rf test/
在您的Gemfile中创建一个条目:
gem 'rspec-rails'
从命令行安装gem
$ bundle install
从命令行安装rspec到你的应用程序:
$ rails g rspec:install
现在您的rails应用程序使用RSpec而不是test-unit。
创建rails应用程序后:
rails new <app_name> -T # to exclude Test::Unit
按以下方式将RSpec gem添加到你的Gemfile中:
group :development, :test do
gem "rspec-rails"
end
在命令行中写:
bundle install # this will install the missing gems
现在你需要安装RSpec通过运行:
rails generate rspec:install
这会生成以下文件:
create .rspec
create spec
create spec/spec_helper.rb
create spec/rails_helper.rb
我强烈建议阅读所有spec_helper和rails_helper注释,以便更好地理解每个选项的作用。
一旦一切都设置好了,你可以运行所有的测试:
bundle exec rspec
您可以在https://kolosek.com/rails-rspec-setup上阅读更多关于推荐的spec_helper和rails_helper配置的信息。
我是一个新的开发人员,我刚刚做了一个rails标志(-rspec)来解决OP的问题。它去掉了Test::Unit,并用bash脚本插入rails-rspec gem。可以通过修改脚本来帮助linux开发人员自动添加rubyracer gem或创建自定义标志和gem集。(可能具体到gem行并删除注释)
要点在这里&&我希望这能帮助到别人。https://gist.github.com/MTen/8310116
在rails
命令行中没有本机方法来完成此操作。生成一个没有test-unit
的新项目:
rails new rails-app --skip-test
然后按照rspec
的说明将其集成到新的Rails应用程序中。