В настоящее время это невозможно, потому что даже если вы пишете расширение 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
Спасибо за это «всеобъемлющий» вопрос. Определение «метаданные», пожалуйста. просьба также представить примеры кода. вы, возможно, говорить о текстовых меток таких как 'given:" пустая форма ввода на странице регистрации "?? – kriegaex
@ kriegaex, да, и я обновил вопросы –