2016-10-03 9 views
0

は私がBaseClass拡張テストを持って、私はアクセス値 - TestNGの

import java.lang.annotation.Retention; 
import java.lang.annotation.RetentionPolicy; 

@Retention(RetentionPolicy.RUNTIME) 
public @interface TestConfig { 
    String[] value(); 
} 

以下のように作成したカスタムAnnotationを持っています。

import org.testng.annotations.Test; 

public class MyTest extends BaseClass { 

    @Test 
    @TestConfig({ "enableCookies" }) 
    public void startTest() { 
     startInstance(); 
    } 
} 

今、私は

輸入org.testng.annotations.BeforeSuiteを下回っている私のBaseClass内部@TestConfig注釈内の値にアクセスする必要があります。

public class BaseClass { 

    public void startInstance() { 
     System.out.println("starting instance"); 
     //I need to access the value supplied in "MyTest" inside @TestConfig annotation here. How do I do that. 
    } 

    @BeforeSuite 
    public void runChecks() { 
     System.out.println("Checks done...."); 
    } 
} 

私はTestConfig config = method.getAnnotation(TestConfig.class)を行うことができます知っているが、私はTestNGのTestMethodクラスをどのようにアクセスできますか?助けてください。あなたのような何かをする(ただし、試験方法で直接呼び出しを削除)することができます

+0

あなたはそれとはどのように過ごしたいですか? – RocketRaccoon

答えて

1

@BeforeMethod 
public void startInstance(Method m) { 
    System.out.println("starting instance"); 
    //I need to access the value supplied in "MyTest" inside @TestConfig annotation here. How do I do that. 
    TestConfig tc = m.getAnnotation(TestConfig.class); 
    System.out.println(tc.value()); 
}