Как може Спок да бъде накаран да опита отново неуспешни тестове на Geb?

Имам функционални тестове за приложение на Grails, което използва Geb и Spock. Понякога функционален тест ще се провали поради изчакване или друго спорадично поведение. В предишни проекти, използващи TestNG, щях да имам retryAnalyzer, който просто да задейства повторен опит по време на изпълнение на теста, за да видя дали е неуспешен и двата пъти (и след това наистина се е провалил).

Как да накарам Spock да опита отново неуспешен тест?


person John Flinchbaugh    schedule 13.07.2012    source източник


Отговори (2)



Ще трябва да напишете малко правило за JUnit (например нещо като https://gist.github.com/897229) или разширение Spock. Вероятно ще трябва да живеете с някои ограничения като повторна употреба на същия екземпляр на спецификация и JUnit само отчитане на един тест, но да се надяваме, че нищо не изключва подхода като цяло. (Едно нещо, което идва на ум е, че подигравката може да не работи.) В бъдеща версия на Spock повтарянето на тест (или неговите градивни елементи) вероятно ще се превърне в първокласна концепция, премахвайки тези ограничения.

person Peter Niederwieser    schedule 13.07.2012
comment
Най-накрая минах по пътя на правилото junit и добавих клас, подобен на този тук: stackoverflow.com/questions/8295100/ . Поставям изрази println около извикването на base.evaluate() и мога да кажа, че правилото ми се изпълнява, но откривам, че винаги връща и никога не виждам Throwable да бъде хвърлен, дори на провал. Има ли друг начин да се каже, че тестът е неуспешен? - person John Flinchbaugh; 19.10.2012