com.thoughtworks.gauge.AfterSpec Maven / Gradle / Ivy
/*----------------------------------------------------------------
* Copyright (c) ThoughtWorks, Inc.
* Licensed under the Apache License, Version 2.0
* See LICENSE.txt in the project root for license information.
*----------------------------------------------------------------*/
package com.thoughtworks.gauge;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* Methods annotated with this hook, execute after every Specification execution completes.
* The specification can be filtered by passing additional attributes.
*
* If there is more than one method annotated with @AfterSpec, the order of execution is as follows:
*
* - Hooks which are not filtered by tags.
*
- Hooks filtered by tags.
*
* If there is more than one hook of these categories, they are executed in reverse alphabetical order based on method names.
*
*/
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface AfterSpec {
/**
* @return Array of tags to filter which specifications the hook runs after.
*/
String[] tags() default {};
/**
* @return OR: if hook should run for a specification containing any of the tags provided
* AND: if hook should run for a specification containing all of the tags provided
* Default is AND
*/
Operator tagAggregation() default Operator.AND;
}