2017-08-07 13 views
0

私は@BeforeTestと@AfterTestアノテーションを使用しています。コード解決方法BeforeTest注釈付きsetBrowserエラーに<ITestContext、XmlTest>の1つのみを挿入できます。

WebDriverFactory wd = new WebDriverFactory(); 

    //@Parameters({"browserName","appURL"}) 
    @BeforeTest 
    public void setBrowser(String browserName, String appURL){ 
     wd.setDriver("chrome", "https:URL"); 
    } 

    @AfterTest 
    public void tearDown() 
    { 
     wd.closeBrowser(); 
    } 

の下に見つけて、エラー

AILED CONFIGURATIONの下に取得してください:@BeforeTest setBrowser org.testng.TestNGException: のみ1 setBrowserを注釈付きBeforeTestへのを注入することができます。ネイティブの依存性注入の詳細について は

org.testng.internal.Parameters.createParametersでorg.testng.internal.Parameters.checkParameterTypesで http://testng.org/doc/documentation-main.html#native-dependency-injection (Parameters.java:244) に(Parameters.java:172)を参照してください。エラーの
+0

質問の見出しとエラースタックのトレースは同じですか?エラースタックトレースに ''が表示されません。参考までに、正確なエラースタックトレースは、ほとんどの場合、問題のデバッグに役立ちます。ありがとう – DebanjanB

答えて

2

理由は単純明快です:

あなた@BeforeTest注釈付きメソッドは、2つの文字列パラメータを受け入れているが、あなたは(私はあなたが共有コードでそれを見てい@Parameters注釈を経由してそれらのパラメータを注入されていません、あなたはそれをコメントアウトしました)。

TestNGのは、基本的には、これらの2つの文字列パラメータの値として提供するのか分からないことを不平を言っている、とTestNGのはONLYネイティブであなたの@BeforeTest注釈付きメソッドのシグネチャが見えることになるため

  • ITestContextオブジェクトのいずれかを注入することができますpublic void setBrowser(ITestContext context){(または)あなたの@BeforeTestアノテーション付きメソッドのシグネチャはpublic void setBrowser(XmlTest xmlTest){
のようになります。そのため
  • XmlTestオブジェクトのような

    setBrowser()メソッドの上に@Parametersアノテーションのコメントを解除するか、その署名を上記の2つのバリエーションのいずれかに変更する必要があります。

  • 関連する問題