To ignore feature methods in our Spock specification we can use the annotation @Ignore
. Any feature method or specification with this annotation is not invoked when we run a specification. With the annotation @IgnoreRest
we indicate that feature methods that do not have this annotation must be ignored. So any method with the annotation is invoked, but the ones without aren't. This annotation can only be applied to methods and not to a specification class.
In the next example we have a specification with two feature methods that will be executed and one that is ignored:
@Grab('org.spockframework:spock-core:1.0-groovy-2.4') import spock.lang.Specification import spock.lang.IgnoreRest import spock.lang.Subject class SampleSpec extends Specification { @Subject private final underTest = new Sample() @IgnoreRest void 'run this spec'() { expect: underTest.message('Asciidoctor') == 'Asciidoctor is awesome.' } @IgnoreRest void 'run this spec also'() { expect: underTest.message('Groovy') == 'Groovy is awesome.' } void 'ignore this spec'() { expect: underTest.message('Word') == 'Word is awesome' } } class Sample { String message(String tool) { println "Getting message for $tool" "$tool is awesome." } }
We can run this specification directly from the command line:
$ groovy SampleSpec.groovy Getting message for Asciidoctor Getting message for Groovy JUnit 4 Runner, Tests: 2, Failures: 0, Time: 54 $
Written with Spock 1.0 and Groovy 2.4.10.