2009-02-08 15 views
2

В настоящее время я использую тест/блок, и я рассматриваю возможность использования rspec. Тем не менее, я заметил, что rspec currently не поддерживает heckle в ruby ​​1.9.1 и не поддерживает передачу каких-либо параметров, чтобы отличать от целевого модуля/класса/метода.Насколько совместимы rspec и heckle?

Есть ли другие проблемы, связанные с использованием heckle и rspec, или они хорошо работают вместе, помимо этих двух проблем?

Кроме того, если я останусь с испытанием/единицей на данный момент, следует ли использовать его с огурцом?

Редактировать: Вопрос 1.9.1 не вина Rspec в - Heckle не может работать на ruby 1.9.1, потому что parsetree не может работать на рубин 1.9.1.

ответ

4

В последний раз, когда я проверял, Heckle + RSpec работал не очень хорошо, и я не думаю, что многие люди используют их вместе.

Еще весной 2008 года я рассмотрел это и заметил, что RSpec и Heckle не работали вместе вообще какое-то время. Я сделал патч, и он был принят в RSpec 1.1.14. Даже после этих изменений я не нашел Хекла очень полезным. Если я правильно помню, проблема в том, что сам Хекл сбрасывается с нетривиальными программами.

Очень жаль, что ситуация такая, какая она есть. Если вы хотите помочь, вы можете посмотреть проект boo-hiss: http://github.com/halorgium/boo_hiss/tree/master.

Обновление: После двухлетнего перерыва на прошлой неделе была выпущена новая версия Heckle (Heckle 1.4.2). Возможно, это устранило проблемы, которые я испытал.

+0

Спасибо за это. Теперь, чтобы установить его ... –

0

В настоящее время я использую heckle 1.4.2 и rspec 1.2.4 для тестирования Addressable. Я рекомендую использовать команду spec непосредственно для того, чтобы что-то щекотать, а не настраивать ее с помощью команды rake. Хеклинг - это то, что я обычно делаю перед выпуском, а не во время регулярной разработки, потому что это так требует времени. И когда вы пытаетесь найти выжившие мутации, вы, вероятно, захотите пойти методом по методу.

Старые версии RSpec были намного более частыми - сбросив полные результаты спецэффектов для всех неудачных спецификаций, но я отправил исправление, исправленное. В любой из последних версий этой проблемы нет, а heckling должен работать нормально.

Например:

spec spec/**/*_spec.rb --heckle Addressable::URI#normalize 

Выход:

********************************************************************** 
*** Addressable::URI#normalize loaded with 25 possible mutations 
********************************************************************** 

25 mutations remaining... 
24 mutations remaining... 
23 mutations remaining... 
22 mutations remaining... 
21 mutations remaining... 
20 mutations remaining... 
19 mutations remaining... 
18 mutations remaining... 
17 mutations remaining... 
16 mutations remaining... 
15 mutations remaining... 
14 mutations remaining... 
13 mutations remaining... 
12 mutations remaining... 
11 mutations remaining... 
10 mutations remaining... 
9 mutations remaining... 
8 mutations remaining... 
7 mutations remaining... 
6 mutations remaining... 
5 mutations remaining... 
4 mutations remaining... 
3 mutations remaining... 
2 mutations remaining... 
1 mutations remaining... 
No mutants survived. Cool! 

(Результаты не типичны.)

+0

Считаете ли вы, что heckling будет быстрее, если бы метод тестирования знал, что он закончит, когда он столкнулся с его первым неудачным тестом, и знал, какой заказ заказывать методы тестирования, чтобы получить неудачу на раннем этапе? –

+0

Я думаю, что было бы невозможно оптимизировать заказ, но пользовательский спецперехватчик мог бы закоротить вещи, и да, это ускорит процесс. –