Ruby rake / testtask выдает неверную команду - PullRequest
3 голосов
/ 08 сентября 2011

У меня есть тесты для моего проекта, разбитые на несколько файлов - test / test_1.rb и test / test_2.rb.

Запуск 'rake test' дает:

$ rake test
ruby -I"lib:test" -I"/foo/rake-0.9.2/lib" "/foo/rake_test_loader.rb" "test/test_general.rb test/test_cv.rb"
/home/rob/.rvm/gems/ruby-1.9.2-p290/gems/rake-0.9.2/lib/rake/rake_test_loader.rb:11:in `require': no such file to load -- /home/rob/src/robsyme/bioruby-chado/test/test_general.rb test/test_cv.rb (LoadError)
... #you can guess the rest

Примечаниепоследний аргумент в команде ruby: "test / test_general.rb test / test_cv.rb"

Если я удаляю кавычки (разбивая последний аргумент на два аргумента), тесты запускаютсяотлично.

  1. Зачем бегуну тестов Рейка группировать два файла в один аргумент?
  2. Что-то не так с настройкой теста граблей?

Среда:

$ grep -A4 TestTask Rakefile 
Rake::TestTask.new(:test) do |test|
  test.libs << 'test'
  test.pattern = FileList['test/**/test_*.rb']
  test.verbose = true
end
$ ruby -v
ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-linux]
$ gem --version
1.8.10
$ rake --version
rake, version 0.9.2

1 Ответ

5 голосов
/ 08 сентября 2011

Добавлено:

test.test_files = FileList ['test / test * .rb']

Список файлов должен быть указан для тестовых файлов, а не для шаблона.Для шаблона я предполагаю, что вы можете задать шаблон в виде строки.

Предыдущий ответ (неправильно понятый вопрос)

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

$ cat > "foo bar"
foobar
^D
$ cat foo\ bar 
foobar
$ cat "foo bar" 
foobar

или

$ ls "Rakefile Gemfile"
ls: Rakefile Gemfile: No such file or directory

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