2015-08-29 3 views
1

Драгоценный камень в вопросе о моей GItHubвключая исполняемый файл с жемчужиной

Я также на Linux, в частности Ubuntu. Я пытаюсь сделать gem совместимым для пользователей Linux/OSX на данный момент, уделяя особое внимание пользователям Windows после правильной работы для * nix-систем.

Итак, я написал драгоценный камень под названием fails. Его можно использовать для создания набора автоматизации тестирования со стеком Ruby/Cucumber/Watir-webdriver вокруг веб-приложений, написанных на других языках, и с другими фреймворками.

Это создает мощные средства генерации командной строки для объектов здания страниц и художественных файлов с помощью нескольких команд, которые:

fails g page <page object name> 
fails f <feature file name> 
fails n <new automated test suite name> 

Я написал соответствующий исполняемый файл, который должен, по установке драгоценного камня, позволяют пользователю для вызова fails <arg> <arg> <arg>...etc из командной строки. Тем не менее, при строительстве камня и установить его, я стараюсь и создать объект страницы с помощью вызова fails g page google, но я получаю сообщение об ошибке:

[email protected]:~/Downloads/fails_gem$ fails 
/usr/local/bin/fails:23:in `load': /var/lib/gems/2.1.0/gems/fails-0.0.3/bin/fails:4: syntax error, unexpected tCONSTANT, expecting end-of-input (SyntaxError) 
fails.rb ARGV[0] ARGV[1] ARGV[2] ARGV[3] ARGV[4] A... 
        ^
    from /usr/local/bin/fails:23:in `<main>' 

Этой ошибка говорит мне, что что-то не так с моим исполняемым файлом, но я не Не совсем понятно. Мне нужно иметь возможность вызвать fails.rb с до девяти аргументов командной строки. Мой исполняемый файл выглядит следующим образом:

#!/usr/bin/env ruby 

require 'fails' 
fails.rb ARGV[0] ARGV[1] ARGV[2] ARGV[3] ARGV[4] ARGV[5] ARGV[6] ARGV[7] ARGV[8] ARGV[9] 

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

ответ

2

Вы, кажется, немного смущены содержанием исполняемого файла bin/fails. Это должен быть простой Ruby. Похоже, вы пытаетесь использовать какую-то комбинацию Ruby и shell синтаксиса с линией fails.rb ARGV[0] ..., которая не сработает.

В этом случае все, что вам нужно, это линия require 'fails'. Это должно загрузить файл lib/fails.rb (поскольку Rubygems добавит lib к вашему пути загрузки), а затем содержимое или ARGV по-прежнему будут доступны в этом файле.

+0

OK awesome. Я был отброшен учебником по rubygems.org, который учит вас, как создать жемчужину «hola». Я уменьшил исполняемый файл до просто shebang и 'require 'fail'', и он отлично работает. Из любопытства я должен сделать что-то особенное для исполняемого файла, чтобы получить ту же функциональность в Windows? – FluffyKittens

+0

@FluffyKittens Я так не думаю (у меня нет Windows-машины для тестирования). Я видел ваш файл 'fail.bat' - Rubygems создает файл-оболочку для исполняемых файлов, который устанавливает путь загрузки и т. Д. В Windows я думаю, что он создает для вас соответствующий файл' .bat', поэтому вам не нужно ничего подобного , – matt

+0

Спасибо. Я ранее создавал этот .bat-файл вручную с целью создания исполняемого файла, чтобы переместить его в bin. Думаю, это не важно. – FluffyKittens

Смежные вопросы