Railsでテストフォルダが作成されなかった時の話
Railsでテストフォルダが作成されなかった時の話
はじめに
最近、ある事情によりRuby on Railsの勉強を始めました。そこで発生したissueについて話そうかと思います。Railsを使用している人、勉強中の方は知っていると思うのですが、Railsには標準でテスト機能がついています。controllerやmodelを作成した時に自動で作成されるやつです。私がRailsの勉強としてRailsチュートリアルをしていた時に、それが作成されなかった事件がありました。チュートリアル序盤のrails generate controller コントローラー名 アクション名でcontrollerを作成した際のことです。rails tでテストは走るのにどうしてだろうと思い調べました。その時に見つけた解決方についてメモします。
解決方
プロジェクト内のconfig/application.rbに
require "rails/test_unit/railtie"
を追加したら無事testフォルダが作成されました。
試しに一度
rails destroy controller コントローラー名 アクション名
で削除してから再度
rails g controller コントローラー名 アクション名
で作成すると
/myapp # rails g controller Index home help
Running via Spring preloader in process 556
create app/controllers/index_controller.rb
route get 'index/home'
get 'index/help'
invoke erb
create app/views/index
create app/views/index/home.html.erb
create app/views/index/help.html.erb
invoke test_unit
create test/controllers/index_controller_test.rb <-これ
invoke helper
create app/helpers/index_helper.rb
invoke test_unit
invoke assets
invoke scss
create app/assets/stylesheets/index.scss
作成されましたね!
ちなみに
require 'rails/all'
となっている人は大丈夫なはずです。
感想
チュートリアルとは違うversionのRailsを使い、尚且つDockerで環境を構築したので期待した状態にはならなかったようです。この問題を解決する方法をいろいろググってたけど、同じ経験をしている人は多くない?みたいです。しかし、Railsの勉強にはなりました!application.rbで他にも多くの設定ができるようです。例えばgenerateした時にstylesheetやhelperの作成を許可するかどうかなど...
詳しくは「rails newしたらconfig.generatorsをまず設定しよう」(https://qiita.com/yuutetu/items/135b1c8ab512208aebfe) を読んでみると良いかもしれません。
環境
ruby 2.6.5
Rails 6.1.0
Author And Source
この問題について(Railsでテストフォルダが作成されなかった時の話), 我々は、より多くの情報をここで見つけました https://qiita.com/kosuketakei/items/1d61b4a0f0d2bd2e6f04著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .