2015-03-03 2 views
1

Я хотел бы использовать трансформатор аннотаций в своем коде после чтения ссылки. Я до сих пор не совсем понимаю, как программным образом вызывать трансформатор аннотации в мой код orignal (я прочитал его до http://testng.org/doc/documentation-main.html). Предположим, у меня есть следующий код:аннотация Трансформатор Invocation

import java.lang.reflect.Constructor; 
import java.lang.reflect.Method; 

import org.testng.IAnnotationTransformer; 
import org.testng.annotations.ITestAnnotation; 
import org.testng.annotations.Test; 



public class TestNGTest { 

    @Test(dependsOnMethods = { "testCase2" }) 
    public void testCase1() { 
     System.out.println("in test case 1"); 
    } 

    @Test 
    public void testCase2() { 
     System.out.println("in test case 2"); 
    } 



    public static class MyTransformer implements IAnnotationTransformer { 

     @Override 
     public void transform(final ITestAnnotation annotation, final Class testClass, 
       final Constructor testConstructor, final Method testMethod) { 
      //some transformations of my annotation 
     } 


    } 
} 

Как можно программно преобразовать «преобразование»? Благодарим вас за помощь Не могли бы вы предоставить мне простой пример кода? Спасибо вам большое заблаговременно.

ответ

0

Спасибо вам большое за тех, кто читает это сообщение. Наконец, я понимаю, что это проблема, ответ очень прост:

@Test 
public void verifyAnnotationWithTransformer() { 
    TestNG tng = new TestNG(); 
    MyTransformer myTransformer = new MyTransformer(); 
    tng.setTestClasses(new Class[] {TestNGTest.class}); 
    tng.setAnnotationTransformer(myTransformer); 
    tng.run(); 
} 

Дело в том, вторая последняя линия, один поместить весь объект annoation трансформатора в функции setAnnotationTransformer. Я не замечаю, что есть такая функция раньше. Я глупый. = _ = " Еще раз спасибо за тех, кто может попытаться помочь.