2014-03-18 2 views
0

Я работаю над своим гравитационным камнем (https://rubygems.org/gems/gravaty), и у меня есть некоторые проблемы с настройкой, работающие в командной строке и в RubyMine IDE одновременно.Конфигурация Ruby gem для RubyMine и командной строки

Я использую IDE JetBrains RubyMine, а иногда и команду, как через мой Rakefile. Если из основного проекта проекта я написал rake test через командную строку, все тесты работают правильно (они запускаются и предоставляют результаты, один тест не проходит, но это еще одна история ...), а если я запускаю их из среды IDE (с Run/Debug конфигурации) у меня есть это сообщение:

1. B:/Programmi/gravaty/test/gravaty/locales/test_locales.rb:1 
Fail to load: B:/Programmi/gravaty/test/gravaty/parsers/test_avatar.rb:1 
     Exception message: cannot load such file -- gravaty/test_parsable_duck_type 
["B:/Programmi/gravaty/test/test_helper.rb:34:in `require'", "B:/Programmi/gravaty/test/test_helper.rb:34:in `<top (required)>'", "B:/Programmi/gravaty/test/gravaty/parsers/test_avatar.rb:15:in `require_relative'", "B:/Programmi/gravaty/test/gravaty/parsers/test_avatar.rb:15:in `<top (required)>'", "C:/Program Files (x86)/JetBrains/RubyMine 6.0.3/rb/testing/runner/tunit_or_minitest_in_folder_runner.rb:51:in `require'", "C:/Program Files (x86)/JetBrains/RubyMine 6.0.3/rb/testing/runner/tunit_or_minitest_in_folder_runner.rb:51:in `block in require_all_test_scripts'", "C:/Program Files (x86)/JetBrains/RubyMine 6.0.3/rb/testing/runner/tunit_or_minitest_in_folder_runner.rb:44:in `each'", "C:/Program Files (x86)/JetBrains/RubyMine 6.0.3/rb/testing/runner/tunit_or_minitest_in_folder_runner.rb:44:in `require_all_test_scripts'", "C:/Program Files (x86)/JetBrains/RubyMine 6.0.3/rb/testing/runner/tunit_or_minitest_in_folder_runner.rb:138:in `<top (required)>'", "-e:1:in `load'", "-e:1:in `<main>'"] 

и так далее (по одному для каждого тестового файла) со всеми его StackTrace.

Чтобы легко настроить правильную (?) require среды, я ставлю к заявлениям

lib_dir = File.dirname(__FILE__) '/../lib' 
$:.unshift lib_dir unless $:.include?(lib_dir) 

в начале моего test_helper.rb файла и, кажется, работает из командной строки, но IDE не ценит , Учитывая эти заявления в test_helper.rb,

require 'minitest/autorun' 
require 'minitest/spec' 

lib_dir = File.dirname(__FILE__) + '/../lib' 
$:.unshift lib_dir unless $:.include?(lib_dir) 

require 'gravaty' 
require 'gravaty/constants' 
require 'gravaty/parsers/avatar' 
require 'gravaty/parsers/callback' 
require 'gravaty/parsers/default' 
require 'gravaty/parsers/force' 
require 'gravaty/parsers/format' 
require 'gravaty/parsers/pixelsize' 
require 'gravaty/parsers/rating' 
require 'gravaty/parsers/secure' 
require 'gravaty/parsers/type' 
require 'gravaty/test_parsable_duck_type' 

В среде IDE подчеркивает все require 'gravaty/ заявления говорят Unresolved Ruby reference. Я добавил свой каталог lib в предпочтение Load Path для IDE, но ничего не меняется.

Есть ли способ заставить его работать в обеих средах? Должен ли я «вырезать» полный путь require в каждом файле и в каждом заявлении require?

ответ

0

Я нашел решение: вместо того, чтобы использовать конфигурацию Run :: Unit/Shoulda/Minitest Run/Debug, я могу просто запустить тесты через простую конфигурацию Run/Debug Rake. The working configuration: on the leftthe "Rake" Run/Debug configuration