1
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 3 years have passed since last update.

【Ruby on Rails Tutorial】3章のテストでエラー

Last updated at Posted at 2021-01-03

【Ruby on Rails Tutorial】3章のテストでエラー

 Ruby on Rails Tutorial 3章の「3.3.1 最初のテスト」をやってみたらエラーが起きて、ライアーゲームのBGMが脳内で流れると共に膝から崩れ落ちて就寝した。
 あと本記事のコード中ではUser名が丸見えであるが、Qiitaで使っている名前と同じなので大丈夫だろう。そうだろう?

目次

  1. どういうエラー?
  2. 解決法は?
  3. 参考文献

どういうエラー?

以下のようなエラーが発生。

ターミナル
PS C:\Users\right\Desktop\Web\Ruby\rails_tutorial\sample_app> rails test
Run options: --seed 4233

# Running:

E

Error:
StaticPagesControllerTest#test_should_get_help:
ActionView::Template::Error: Permission denied @ rb_file_s_rename - (C:/661900.45188.508323, C:/Users/right/Desktop/Web/Ruby/rails_tutorial/sample_app/tmp/cache/assets/sprockets/v4.0.0/jm/jmKa6krLovmtBf-DxAwKf051KFbzekTxfeLnbW5-3lU.cache)
    app/views/layouts/application.html.erb:9
    test/controllers/static_pages_controller_test.rb:10:in `block in <class:StaticPagesControllerTest>'


rails test test/controllers/static_pages_controller_test.rb:9

.

Finished in 7.447825s, 0.2685 runs/s, 0.1343 assertions/s.
2 runs, 1 assertions, 0 failures, 1 errors, 0 skips

エラー文を読み解いてみる。とかそういったことはこの記事では面倒なのでしない。
いや実際に自分はやったが昨日のことなので忘れた。投稿者の脳みそは揮発性メモリなのだ。
具体的にやって解決した方法だけ書く。

解決法は?

まず悪さをしていたのは以下の「これを直すんや」の部分である。
ちなみに正確に言うと悪いのはこいつではない。
テストコードのテストを1つずつやってみたら、すんなりと成功(GREEN)するのだ。
つまり、悪さをしているのは並行処理を行うことでエラーが起きるRailsの方である。

system>test_helper.rb
ENV['RAILS_ENV'] ||= 'test'
require_relative "../config/environment"
require "rails/test_help"

class ActiveSupport::TestCase
  # Run tests in parallel with specified workers
  parallelize(workers: :number_of_processors, with: :threads) # ←これを直すんや

  # Setup all fixtures in test/fixtures/*.yml for all tests in alphabetical order.
  fixtures :all

  # Add more helper methods to be used by all tests here...
end

system>test_helper.rb
  parallelize(workers: 1) # ←こうするんや

そこのコードの意味は1ミリも知らない。しかし多分並行処理しますよ的なアレだろう。多分知らんけど。

こうしてもう一度テストを実行すると、見事に成功した。ここでワールドカップで優勝した時ぐらいの雄叫びを上げる。
####このエラーを解決するのに3時間かかったからな!!!!!!!!!

参考文献

1
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
1
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?