Home | History | Annotate | Download | only in annotations
      1 package org.testng.annotations;
      2 
      3 import java.lang.annotation.Retention;
      4 import java.lang.annotation.Target;
      5 
      6 @Retention(java.lang.annotation.RetentionPolicy.RUNTIME)
      7 @Target(java.lang.annotation.ElementType.METHOD)
      8 public @interface BeforeGroups {
      9   /**
     10    * The list of groups that this configuration method will run before. If specified it overrides the
     11    * list of groups provided through {@link #groups()} attribute.
     12    * This method is guaranteed to run shortly before the first test method that
     13    * belongs to any of these groups is invoked.
     14    */
     15   public String[] value() default {};
     16 
     17   /**
     18    * Whether methods on this class/method are enabled.
     19    */
     20   public boolean enabled() default true;
     21 
     22   /**
     23    * The list of groups this class/method belongs to. This list also describes the groups
     24    * that this configuration method will run before (if no {@link #value()} attribute is defined).
     25    */
     26   public String[] groups() default {};
     27 
     28   /**
     29    * The list of groups this method depends on.  Every method
     30    * member of one of these groups is guaranteed to have been
     31    * invoked before this method.  Furthermore, if any of these
     32    * methods was not a SUCCESS, this test method will not be
     33    * run and will be flagged as a SKIP.
     34    */
     35   public String[] dependsOnGroups() default {};
     36 
     37   /**
     38    * The list of methods this method depends on.  There is no guarantee
     39    * on the order on which the methods depended upon will be run, but you
     40    * are guaranteed that all these methods will be run before the test method
     41    * that contains this annotation is run.  Furthermore, if any of these
     42    * methods was not a SUCCESS, this test method will not be
     43    * run and will be flagged as a SKIP.
     44    *
     45    *  If some of these methods have been overloaded, all the overloaded
     46    *  versions will be run.
     47    */
     48   public String[] dependsOnMethods() default {};
     49 
     50   /**
     51    *  For before methods (beforeSuite, beforeTest, beforeTestClass and
     52    *  beforeTestMethod, but not beforeGroups):
     53    *  If set to true, this configuration method will be run
     54    *  regardless of what groups it belongs to.
     55    *  <br>
     56    * For after methods (afterSuite, afterClass, ...):
     57    *  If set to true, this configuration method will be run
     58    *  even if one or more methods invoked previously failed or
     59    *  was skipped.
     60    */
     61   public boolean alwaysRun() default false;
     62 
     63   /**
     64    * If true, this &#64;Configuration method will belong to groups specified in the
     65    * &#64;Test annotation on the class (if any).
     66    */
     67   public boolean inheritGroups() default true;
     68 
     69   /**
     70    * The description for this method.  The string used will appear in the
     71    * HTML report and also on standard output if verbose >= 2.
     72    */
     73   public String description() default "";
     74 
     75   /**
     76    * The maximum number of milliseconds this method should take.
     77    * If it hasn't returned after this time, this method will fail and
     78    * it will cause test methods depending on it to be skipped.
     79    */
     80   public long timeOut() default 0;
     81 }
     82