RSpec がフリーズしています
概要
Rails アプリに rspec を設定してインストールしました。正常に動作していました (rspec を試しているだけなので、テストは 2 つだけです)。
彼らは順調に働いていました。現在、データベースを使用してテストを実行しようとすると、rspec がフリーズします。
ただ凍ってしまいます。出力にエラーがないため、探し始めるべきかどうかさえわかりません。
rspec の冗長モードまたはデバッグ モードはありますか、あるいは誰かがこれに直面したことがありますか?
-b を試してみましたが、エラーが発生する前にフリーズします。
出力: (Rspec は –format ドキュメントで構成されています)
[leandro@machine:~] rspec
User
というより、それだけです。それはハングします。コンピューターを手動で 2 回リセットする必要があります。
これは user_spec.rb です
require 'spec_helper'
describe User do
let(:user) { User.create({
username: "teste",
email: "[email protected]",
name: "Teste",
phone: "123456789",
password: "123456",
notes: "Teste"
}) }
subject { user }
it "is invalid without a username" do
user.username = nil
is_expected.not_to be_valid
end
end
そして私のspec_helper.rb
# This file is copied to spec/ when you run 'rails generate rspec:install'
ENV["RAILS_ENV"] ||= 'test'
require File.expand_path("../../config/environment", __FILE__)
require 'rspec/rails'
Dir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f }
# Checks for pending migrations before tests are run.
ActiveRecord::Migration.maintain_test_schema!
RSpec.configure do |config|
config.infer_base_class_for_anonymous_controllers = false
config.order = "random"
config.color = true
config.tty = true
config.formatter = :documentation #:progress, :html, :textmate
config.expect_with :rspec do |c|
c.syntax = :expect
end
end
解決
遅延_job_active_record gemがハングの原因となっていることが判明しました。
理由はわかりませんが、@Greg Malcolm として log/teste.log を調べたところ、遅延ジョブ データベースを作成して新しいユーザーを設定した直後に rspec が異常終了していました。
gem を開発環境と本番環境のみに制限しましたが、うまくいきました。
解決策
rspec の rake のような冗長機能については聞いたことがありません。ただし、log/test.log を調べて、そこに何が表示されているかを確認する方がおそらく便利です。これは、フリーズ効果の一部であるデータベース アクティビティを示します。
Rails コンソールをテストして、データベース接続が正しく機能していることを確認することもできます。