Запуск файлов RSpec из кода ruby - PullRequest
2 голосов
/ 13 мая 2010

Я пытаюсь запустить тесты RSpec прямо из кода ruby. В частности, я запускаю некоторые сценарии mysql, загружаю среду тестирования rails, а затем хочу запустить свои тесты rspec (с чем у меня возникают проблемы) ... Я пытаюсь сделать это с помощью задачи rake , Вот мой код:

require "spec/autorun"
require"spec"
require "spec/rake/spectask"
RAILS_ENV = 'test'

namespace :run_all_tests do 
  desc "Run all of your tests" 

  puts "Reseting test database..." 
  system "mysql --user=root --password=dev < C:\\Brian\\Work\\Personal\\BrianSite\\database\\BrianSite_test_CreateScript.sql" 
  puts "Filling database tables with test data..." 
  system "mysql --user=root --password=dev < C:\\Brian\\Work\\Personal\\BrianSite\\database\\Fill_Test_Tables.sql" 

  puts "Starting rails test environment..." 
  task :run => :environment do 
    puts "RAILS_ENV is #{RAILS_ENV}"
    # Run rspec test files here...
    require "spec/models/blog_spec.rb" 
  end 
end

Я думал, что требуемый "spec / models / blog_spec.rb" сделает это, но тесты не запускаются. Кто-нибудь знает, где я иду не так?

ОБНОВЛЕНИЕ: я добавил команду require "spec / autorun" в верхней части файла, и теперь я сталкиваюсь с этой ошибкой, когда делаю рейк run_all_tests: run:

C: /Ruby/lib/ruby/gems/1.8/gems/rspec-1.3.0/lib/spec/runner/options.rb: 283: в fi les_to_load': File or directory not found: run_all_tests:run (RuntimeError) from C:/Ruby/lib/ruby/gems/1.8/gems/rspec-1.3.0/lib/spec/runner/options. rb:275:in каждый ' из C: /Ruby/lib/ruby/gems/1.8/gems/rspec-1.3.0/lib/spec/runner/options. rb: 275: в files_to_load' from C:/Ruby/lib/ruby/gems/1.8/gems/rspec-1.3.0/lib/spec/runner/options. rb:133:in run_examples ' из C: /Ruby/lib/ruby/gems/1.8/gems/rspec-1.3.0/lib/spec/runner.rb: 61: в run' from C:/Ruby/lib/ruby/gems/1.8/gems/rspec-1.3.0/lib/spec/runner.rb:45:in автозапуск» от C: / Ruby / bin / rake: 19

Эта ошибка появляется, когда она попадает в строку «spec / models / blog_spec.rb». Этот файл существует, потому что когда я пытаюсь изменить оператор require, я просто получаю сообщение об ошибке «файл не найден». Похоже, что rspec пытается запустить тесты, но сталкивается с проблемами ... есть мысли?

Спасибо за любую помощь.

Ответы [ 3 ]

1 голос
/ 13 мая 2010

Попробуйте добавить require "spec/autorun в начало вашего файла.

Вам не нужно делать это таким образом, потому что есть встроенные в Rake-задачи (в том числе spec/rake/spectask), чтобы делать то, что вы делаете:

0 голосов
/ 20 ноября 2017

Всякий раз, когда я выполняю скрипт rb с использованием библиотеки rspec, я добавляю «rspec» перед именем файла

rspec mycode.rb

0 голосов
/ 22 июня 2010

возможно, измените элемент пространства имен на строку ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...