2017-02-09 13 views
0

Возможно ли это или нет? Если да, это будет большой помощью для отладки.Как распечатывать метаданные с запятой (континент заданного | когда | тогда) при запуске specs?

Обновление: Для метаданных, я имею в виду содержания после данного | при | затем оператора, например:

def "test case"... 
given:"some preconditions" 
when:"do something" 
then:"some result" 
... 

Я хочу, чтобы содержание удар отпечаталось:

"test case" begins 
"some preconditions" 
"do something" 
"some result" 
+0

Спасибо за это «всеобъемлющий» вопрос. Определение «метаданные», пожалуйста. просьба также представить примеры кода. вы, возможно, говорить о текстовых меток таких как 'given:" пустая форма ввода на странице регистрации "?? – kriegaex

+0

@ kriegaex, да, и я обновил вопросы –

ответ

0

В настоящее время это невозможно, потому что даже если вы пишете расширение Spock, самым глубоким из которых вы можете подключиться в данный момент, является выполнение метода функции. То есть что вы можете сделать, это распечатать все метки блоков до или после выполнения метода, но не вставлять свой собственный выход журнала во время выполнения метода. На данный момент нет точки перехвата или перехвата для выполнения блока внутри метода.

Смотрите также эти пожелания (по-прежнему без ответа, к сожалению):

Что также можно вокруг каротаж блоков меток писать отчеты HTML тест как тест документация. Но это отчетная вещь, а не то, что вы можете использовать во время запуска теста.


Update: Тем временем немного обходной путь. Поместите это в глобальный Спока конфигурационный скрипт (обычно src/test/resources/SpockConfig.groovy:

import spock.lang.Specification 

class LabelPrinter { 
    def _(def message) { 
    println message 
    true 
    } 
} 

Specification.mixin LabelPrinter 

Затем используйте его от Спока или ГЭБ испытаний, как это (обратите внимание на подчеркивание после меток):

журнал
package de.scrum_master.testing 

import spock.lang.Specification 

class MySpockTest extends Specification { 
    def "interaction"() { 
    given:_ "My given comment" 
    def foo = 11 
    def bar = foo + 4 
    println "blah" 

    expect:_ "My expect comment" 
    interaction { 
     foo = 2 
     bar = 5 
     true 
    } 
    println "foo" 
    foo * bar == 10 
    foo + bar == 7 

    and:_ "My and comment" 
    true 
    } 
} 

консоли:

My given comment 
blah 
My expect comment 
foo 
My and comment 
+0

Я обновил свой ответ с небольшим обходным решением. – kriegaex

+0

Извиняюсь, если я немного воспитываю мертвых. Можно ли установить этот крюк, чтобы просто распечатать все данные, когда, thens и т. Д.? – christopher

+0

Я не понимаю ваш вопрос. Пожалуйста, дополните. – kriegaex