Как запустить огурец и RSPEC? - PullRequest
3 голосов
/ 30 августа 2011

сейчас я использую rspec для своих тестов. для запуска rspec все, что мне нужно сделать, это:

рейк спецификация

Теперь я хочу использовать Cucumber для написания тестов, чтобы убедиться, что пути входа и регистрации работают правильно с Devise & Omniauth.

Чтобы использовать Cucumber, мне нужно написать тесты в / features, верно?

Значит ли это, что для проверки мне нужно запустить

rake spec

А затем выполните другую команду

cucumber

Так что теперь мне нужно запустить две среды тестирования?

Спасибо

Ответы [ 4 ]

10 голосов
/ 05 июня 2014

Адаптировано с http://blog.andywaite.com/2013/02/28/rakefile-cucumber-rspec-jasmine/

Rakefile:

require 'rspec/core/rake_task'
require 'cucumber/rake/task'

RSpec::Core::RakeTask.new
Cucumber::Rake::Task.new

task :default => [:spec, :cucumber]

Но я предпочитаю guard для автоматического запуска тестов.

6 голосов
/ 30 августа 2011

Да.Один из них является структурой модульного тестирования, другой - для приемочных испытаний высокого уровня.

Кроме того, если вы ищете интеграционные тесты, а не приемочные тесты (как это звучит), лучше подойдет простая капибара с rspec (https://github.com/jnicklas/capybara, прокрутите вниз до capybara + rspec)

1 голос
/ 30 августа 2011

Чтобы учесть специфику выполнения 2 команд, запуск автотеста для автоматического запуска ваших тестов всякий раз, когда вы вносите изменения в код спецификации или программный код, устраняет необходимость использования команд rake.

https://github.com/dchelimsky/rspec/wiki/Autotest-Integration

Если вы используете огурец, бегущий AUTOFEATURE=true autotest будет запускать тесты rspec и спецификации огурца в последовательности

https://github.com/cucumber/cucumber/wiki/Autotest-Integration

Автотест имеетотличная функция в том, что он запускает весь набор спецификаций, но, если какие-либо тесты не пройдут, он будет перезапускать только этот тест, пока он не пройдет, а затем снова перезапустит весь тест.Он также имеет дополнительное значение рандомизации порядка тестов, так что он гарантирует, что тесты действительны изолированно

1 голос
/ 30 августа 2011

Да, это правильно. Вообще говоря, я использую Rspec для модульного тестирования и cucumber для интеграции. Если вы обнаружите, что RSpec отвечает за интеграционные тесты, и вам не нужно писать функции cucumber для спецификации приложения с клиентом или системным аналитиком, то возможно, cucumber не для вас. Лично мне нравится, как работает огурец для интеграционного тестирования. Его можно использовать многократно, и легко понять, что происходит в тесте.

...