2017-07-17 19 views
0

ENV: Seleniuim網絡驅動程序,TestNG的是,Eclipse,Java的1.8org.testng.TestNGException:參數 '瀏覽器' 要求通過@Configuration的方法MethodSetup

我有一個測試。我可以從testng套件中運行它(右鍵單擊suite> run as> testng suite)。如果我直接運行測試(右鍵單擊測試>運行爲> TestNG的測試),我得到一個錯誤:

org.testng.TestNGException: Parameter 'browser' is required by @Configuration on method MethodSetup but has not been marked @Optional or defined in C:\Users\m\AppData\Local\Temp\testng-eclipse--1694993462\testng-customsuite.xml

BaseTest:

public class BaseTest { 
    protected WebDriver driver; 

    @Parameters ({"browser"}) 
    @BeforeMethod 
    protected void MethodSetup(String browser){ 
     System.out.println("method set up"); 
     driver = Browsers.getDriver(browser); 
     } 
//.... 
} 

測試:

public class LoginTest extends BaseTest{ 

    @Parameters({ "browser" , "ch" }) 
    @SuppressWarnings("deprecation") 
    @Test 
    public void positiveLoginTest(){ 


     String expectedPageTitle = "Seeker Dashboard - Profile"; 
     String Expectedprofilename = "md"; 
//... 
} 

TestNG的套件:

<suite name="TestAll"> 

       <test name="ie1"> 
     <parameter name="browser" value="ch"/> 
     <classes> 
      <class name="com.dice.LoginTest"> 
      <methods> 
        <include name="positiveLoginTest"/> 
       </methods> 
      </class> 
     </classes> 
    </test> 


</suite> 

enter image description here

回答

0

您指定在您的套房XML的參數。當你作爲套件運行時,使用特定的xml。但是當你選擇一個測試並運行它時,testng會創建一個自定義的testng文件(最低限度 - 沒有參數,沒有監聽器 - 你可以看看你提到的路徑上的文件)。

如果這是您使用的標準xml,則需要在eclipse中將xml指定爲模板xml。轉到項目屬性 - > testng - >將xml設置爲模板xml。

+0

我不確定如果我能夠關注你。我右鍵單擊項目>屬性>瀏覽模板XML文件中的XML文件>單擊應用。當我運行特定的測試時,仍然會出現相同的錯誤。 XML文件運行得很好。 – learn4ever

+0

只需從* .xml文件運行testclass(右鍵單擊* .xml - > Run)即可。參數化測試無法直接運行 –

+0

@Drupol當您使用eclipse作爲單個測試進行觸發時,testng套件級參數僅用於創建自定義testng套件。所以你需要在你的測試標籤之外聲明你的參數。否則,您需要通過右鍵單擊您的xml文件,然後單擊作爲testng套件運行。 –