0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Rails】Rails6系にアップデートしたらテストでbut rendering with <["rescues/blocked_host", "rescues/layout"]>というエラーが出た【minitest】

Posted at

どうした?

ある程度開発を進めたタイミングでRailsのバージョンを5系から6系へアップしたところ、テストでエラーが出ました。

環境

$ ruby -v
=> ruby 3.1.2p20

$ rails -v
=> Rails 6.1.7
(アップデート前: 5.2.8.1)

事象

minitestにて

get "/"
assert_template "home/top"

の結果

expecting <"home/top"> but rendering with <["rescues/blocked_host", "rescues/layout"]>

と返ってきました。
もちろんバージョンアップ前はするすると通っていたテストですし、ローカルサーバー上でも問題ありません。

解決策

参照元の解決策①を試しましたが、テストでのエラーは解決しませんでした。
そこで、config/enviroments/test.rbにも同様の対処をしたところ、テストはGREENになりました。

config/enviroments/test.rb
Rails.application.configure do
  #省略
  config.hosts << "www.example.com"
  #省略
end

考察

参照元の通り、ホストの指定をすることでテストがwww.example.comへのアクセスを許可しているようです。
参照元では解決策②としてテスト実行時にテスト環境を使うようにしていますが、私の事象の場合はテスト時はテスト環境が動いているようです。
よって私の事象の場合、解決策②は不要だと考えられます。
(そもそもDockerではない。)

参照

Rails統合テストでDRb::DRbRemoteErrorにハマった話

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?