2014-09-18 3 views
0

У меня настроен rspec, установленный в моем приложении rails. Он работал нормально (мы просто экспериментируем с rspec, поэтому есть только 2 теста).RSpec Freezing

Они отлично работали. Теперь rspec замерзает, когда он собирается выполнить тест с использованием базы данных.

Я просто замораживает. Я даже не знаю, чтобы начать искать, потому что в выходе нет ошибок.

Есть ли подробный или отладочный режим для rspec или кто-то когда-либо сталкивался с этим?

Я пробовал -b, но он замерзает, прежде чем может дать ошибку.

Выход: (Rspec конфигурируется с --format документации)

[[email protected]:~] rspec 
User 

чем, это все. Он висит. Я должен дважды перезагрузить компьютер.

Это 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 

РЕШЕНИЕ

Оказывается, что delayed_job_active_record камень был причиной повешение.

Я не знаю почему, но, как @Greg Malcolm, я посмотрел на log/teste.log, и rspec был лихорадочным сразу после создания базы данных замедленных заданий и создания нового пользователя.

Я ограничил драгоценный камень только для разработки и производства окружающей среды, и это сработало!

+0

Можете ли вы показать консольный вывод о том, как далеко вы дойдете до его замораживания, чтобы мы могли лучше понять, где происходит замораживание? В частности, мне было бы интересно узнать, успешно ли загружена среда рельсов. –

+1

В этом проблема. Нет выхода !. У меня есть «описать пользователя» и некоторые примеры. Я настроил rspec для вывода в формате документации. Таким образом, он печатает «Пользователь», а затем зависает. – lcguida

+0

Какая версия рельсов? Ваш тестовый db может быть устаревшим, попробуйте запустить 'rake db: test: prepare' – Anthony

ответ

1

Я не слышал о грабли, как многословная функция для rspec. Но, вероятно, более полезно просмотреть log/test.log и посмотреть, что там видно. Он показывает активность базы данных, которая является частью эффекта замораживания.

Вы также можете запросить rails console и убедиться, что соединение с базой данных работает правильно.