Тестирование в Redmine

Я создал плагин для Redmine, и теперь у меня возникают трудности с написанием тестов для него. Я не использую для этого какую-либо структуру, такую ​​​​как rspec, только стандартные утверждения, предоставляемые рельсами.

Сначала я провел свой тест, запустив файл через интерпретатор ruby. Это не загрузило фикстуры, поэтому я нашел альтернативу: я скопировал файл фикстур в ${redmine_root}/test/fixtures из ${redmine_root}/vendor/plugins/my_plugin/test/fixtures, запустил rake db:fixtures: загрузить, и теперь он загружает их.

Контроллер, который я тестирую, имеет разрешения, установленные в init.rb, и требует авторизации для некоторых действий.

Хотя я открываю сеанс как привилегированный пользователь (Админ), я не авторизован для выполнения действий в контроллере, как-то не загружаются разрешения в начале теста.

Я добавил разрешения вручную в roles.yml и убедился, что у пользователя есть соответствующая роль, но опять ничего. Плагин работает хорошо, я столкнулся с этими проблемами только при тестировании. Если я прокомментирую строку с помощью before_filter :authorize в моем контроллере, тест пройдет.

Я что-то упускаю? Разрешения из init.rb хранятся в другом месте или загружаются по-другому на этапе тестирования?


person user852689    schedule 24.07.2011    source источник
comment
Как выглядит тест? Что делает авторизация? Урезанные примеры кода были бы полезны.   -  person Mark Thomas    schedule 25.07.2011


Ответы (1)


Попробуйте использовать rake-задачи, предоставляемые Redmine, для запуска набора тестов. Они должны настроить все правильно. Вы можете найти их, используя rake -T search-pattern. rake -T test:plugins перечислит следующие:

rake test:plugins                        # Run tests for pluginsenvironment / Run the plugin tests in vendor/plugins/*/**/test (or specify with PLUGIN=name)
rake test:plugins:all                    # Run the plugin tests in vendor/plugins/**/test (or specify with PLUGIN=name)
rake test:plugins:functionals            # Run tests for functionalssetup_plugin_fixtures
rake test:plugins:integration            # Run tests for integrationsetup_plugin_fixtures
rake test:plugins:setup_plugin_fixtures  # Mirrors plugin fixtures into a single location to help plugin tests
rake test:plugins:units                  # Run tests for unitssetup_plugin_fixtures
person Gregor Schmidt    schedule 25.07.2011
comment
Спасибо! Я не знал этих команд. Теперь приборы загружаются правильно. - person user852689; 26.07.2011