Автотест рубин на рельсах с rspec - PullRequest
3 голосов
/ 02 марта 2011

Я использую автотест с ruby ​​на рельсах.Я прохожу 2 проходных теста, когда я бегу.rspec spec/;однако, когда я пытаюсь использовать автотест, это вывод:

matt@matt-laptop:~/sample_app$ autotest
loading autotest/rails_rspec2
style: RailsRspec2
matt@matt-laptop:~/sample_app$

Я не получаю вывод о результатах тестов.То же самое работает с bundle exec autotest.Я видел сообщение с рекомендацией autospec, но эта команда устарела с rspec2.Мой Gemfile

source 'http://rubygems.org'

gem 'rails', '3.0.5'
gem 'sqlite3-ruby', '1.3.2', :require => 'sqlite3'

group :development do
  gem 'rspec-rails', '2.5.0'
  gem 'autotest','4.4.4'
end

group :test do
  gem 'rspec', '2.5.0'
  gem 'webrat', '0.7.1'
  gem 'autotest', '4.4.4'
  gem 'redgreen', '1.2.2'
end

Я пытался поместить конфигурационный файл .autotest в корневой каталог моего проекта, а также в домашний каталог, и ни один из них не влияет на вывод.Мой файл .autotest выглядит следующим образом

#!/bin/ruby
require 'autotest/timestamp'

module Autotest::GnomeNotify
  def self.notify title, msg, img
    system "notify-send '#{title}' '#{msg}' -i #{img} -t 3000"
  end

  Autotest.add_hook :ran_command do |at|
    image_root = "~/.autotest_images"
    results = [at.results].flatten.join("\n")
    results.gsub!(/\\e\[\d+m/,'')
    output = results.slice(/(\d+)\sexamples?,\s(\d+)\sfailures?(,\s(\d+)\spending?|)/)
    full_sentence, green, failures, garbage, pending = $~.to_a.map(&:to_i)
  if output
    if failures > 0
      notify "FAIL", "#{output}", "#{image_root}/fail.png"
    elsif pending > 0
      notify "Pending", "#{output}", "#{image_root}/pending.png"
    else
      notify "Pass", "#{output}", "#{image_root}/pass.png"
    end
  end
 end
end

Я также проверил, что libnotify-bin установлен и работает.

Ответы [ 2 ]

1 голос
/ 02 марта 2011

Чтобы получить подробные результаты из rspec, создайте файл .rspec в корневой папке проекта и напишите:

--format documentation

Если можно, позвольте мне предложить наблюдатель вместо автотеста (также с spork),Очень прост в настройке и очень эффективен.

Взгляните на

http://www.rubyinside.com/how-to-rails-3-and-rspec-2-4336.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+RubyInside+%28Ruby+Inside%29

, если хотите.

0 голосов
/ 06 апреля 2011

У меня была такая же проблема с автотестом.Я не уверен, но я полагаю, что это может быть очень привередливым в отношении версий зависимости.Я немного новичок в Rails, но так как я недавно поделился вашими проблемами, позвольте мне показать вам, что я сделал, чтобы решить эту проблему:

Я смог заставить его работать, избавившись от всехкод в файле .autotest и замена его на:

require 'autotest/growl'
require 'autotest/fsevent'

Для ясности, эта вторая строка должна применяться только в том случае, если вы используете OSX.Я думаю, что вы можете безопасно избавиться от всего «кода» в вашем файле .autotest, потому что он относится к ручным «красным / зеленым» уведомлениям рычания, которые больше не нужны, когда у вас установлен «красный» драгоценный камень.Короче говоря, вы получите файл .autotest с одной или двумя строками.

Вот некоторые файлы, которые я установил через gem (некоторые, например, rspec-ожидания, должны автоматически устанавливаться как зависимости).Следующие файлы, по моему мнению, должны иметь отношение к вашей настройке автотеста, версии не позднее, чем за 10 минут до написания этого ответа.

  • автотест (4.4.6, 4.3.2)
  • autotest-fsevent (0.2.5, 0.2.2)
  • autotest-рычание (0.2.9, 0.2.4)
  • autotest-rails-pure (4.1.2, 4.1.0)
  • redgreen (1.2.2)
  • rspec-core (2.5.1, 2.0.0.beta.18)
  • rspec-ожидания (2.5.0, 2.0.0.beta.18)
  • rspec-mocks (2.5.0, 2.0.0.beta.18)
  • rspec-rails (2.5.0, 2.0.0.beta.18)
  • spork (0.8.4)
  • webrat (0.7.3)
  • ZenTest (4.5.0)

Выполните команду gem list, чтобы увидеть, какие из них вы установили.Это может быть простой вопрос обновления ваших версий и упрощения вашего файла .autotest (у меня есть мой в моем домашнем каталоге, если вы заботитесь о местоположении).Кроме того, не забывайте, что файл autotest-fsevent относится только к OSX.

PS Вы, вероятно, ОСТАЕТЕСЬ с необъяснимыми ошибками автотеста, если вы не добавите некоторый дополнительный код в самый конец вашей спецификации / контроллеров/spec_helper.rb file:

# Webrat configuration
Webrat.configure do |config|
config.mode = :rails
end
...