Невозможно вызвать пользовательскую аннотацию в тесте селена - PullRequest
0 голосов
/ 16 ноября 2018

Невозможно вызвать пользовательскую аннотацию в тесте селена я пишу тест Apache Poi Selen Junit - Чтобы избежать @RunWith я попробовал мою аннотацию

public class MyTest extends OtherTest {
    String a ;
    String b;
    String c;
    String d;

   @testDataProvider(name = "abc")
    public static Object[][] fetchClass(){
        Object[][] ar = excel.getar("abc");
        return (ar);
    }

    @testDataProviderTest(dataProvider = "abc")
    @Test
    public void test1() {
        System.out.println(a);
    }

Пользовательский класс аннотации для testDataProvider. Я попытался использовать тот же testng DataProvider в пользовательской аннотации, как показано ниже

 @Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
public @interface testDataProvider {
    public String name() default "";
    boolean parallel() default false;
    int[] indices() default {};
}

Пользовательская аннотация для testDataPrviderTest

@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD,ElementType.CONSTRUCTOR,ElementType.TYPE})
public @interface testDataProviderTest {
    public String[] groups() default {};
    public boolean enabled() default true;
    @Deprecated
    public String[] parameters() default {};
    public String[] dependsOnGroups() default {};
    public String[] dependsOnMethods() default {};
    public long timeOut() default 0;
    public long invocationTimeOut() default 0;
    public int invocationCount() default 1;
    public int threadPoolSize() default 0;
    public int successPercentage() default 100;
    public String dataProvider() default "";
    public Class<?> dataProviderClass() default Object.class;
    public boolean alwaysRun() default false;
    public String description() default "";
    public Class[] expectedExceptions() default {};
    public String expectedExceptionsMessageRegExp() default ".*";
    public String suiteName() default "";
    public String testName() default "";
    public boolean sequential() default false;
    public boolean singleThreaded() default false;
    public Class retryAnalyzer() default Class.class;
    public boolean skipFailedInvocations() default false;
    public boolean ignoreMissingDependencies() default false;
    int priority() default 0;

}

Я избегаю использовать @RunWith, как у меня есть метод Before, чтобы получить путь к листу Excel.

...