Как запустить подмножество функциональных тестов spock в Grails?

В некоторых других средах тестирования я привык помечать тесты тегами, например, @really_slow, @front_end.

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

Чтобы запустить мои тесты spock+geb в grails на данный момент, я просто запускаю функционал тестового приложения grails:

Как мне сказать ему запустить подмножество?


person The Trav    schedule 28.08.2012    source источник


Ответы (1)


Вы можете использовать наборы JUnit с @Category. Или вы можете использовать SpockConfig.groovy со следующим содержимым:

runner {
    include foo.bar.FrontEnd, foo.bar.BackEnd
    exclude foo.bar.Slow
}

Здесь foo.bar.FrontEnd, foo.bar.BackEnd и foo.bar.Slow — ваши собственные аннотации. Чтобы активировать файл конфигурации, вы должны установить spock.configuration системное свойство, указывающее на него.

person Peter Niederwieser    schedule 28.08.2012
comment
Отличный ответ, где я могу найти документацию по файлу SpockConfig.groovy? - person Alison; 23.02.2013
comment
В настоящее время он недостаточно документирован. Вы можете найти некоторые фрагменты в Javadoc (например, javadoc.spockframework.org/latest/ спок/config/). Расположение файла конфигурации по умолчанию — ~/.spock/SpockConfig.groovy. При необходимости вы можете указать другой путь к файлу через системное свойство spock.configuration. - person Peter Niederwieser; 23.02.2013
comment
У меня проблемы с тем, чтобы заставить это работать. Я получаю сообщение об ошибке, в котором говорится, что файл конфигурации неверен, но не указано, какая строка. Есть ли способ командной строки указать конфигурацию spock? - person Alison; 26.02.2013
comment
Аналогичная проблема, жалоба на то, что файл конфигурации Spock не может скомпилироваться, когда он должен (на основе примера и IntelliJ компилирует его без проблем) import com.myproject.test.ReadOnly runner { include ReadOnly } - person Marcos Carceles; 18.08.2014
comment
Видимо в этом причина: code.google.com/p/spock/ проблемы/подробности?id=184 - person Marcos Carceles; 18.08.2014