2016-08-11 9 views
1

6.9.10にアップデートした後も同じ問題が発生しています。TestNG:TestBaseクラスのパラメータTearUpメソッドを使用できません

私の場合は、BaseTestクラスで

例私はパラメータを使用しています少し異なります。

私は右クリックして「Test1.java」で日食でテストを実行しています> Run As(実行)> TestNGのテスト

Getting error: "Parameter 'username' is required by @Configuration on method beforeClass but has not been marked @Optional or defined" 

testNG xml file: 

<?xml version="1.0" encoding="UTF-8"?> 

<suite name = "MiscSuite"> 
    <parameter name="username" value="username"> 
    <test name = "MiscTest"> 
     <classes > 
      <class name="drkthng.misc.RunAllTestClasses01" /> 
     </classes> 
    </test> 
</suite> 

TestBase class with a @BeforeClass method: 


public abstract class TestBase { 
    @Parameters({"username"}) 
    @BeforeClass 
    public void beforeClass(String username) { 
     System.out.println(username); 
    } 
} 


public class Test1 extends TestBase { 

    @BeforeClass 
    public void startUp() { 
     Assert.assertTrue(false); 
    } 

    @Test 
    public void Test01() { 
     Assert.assertTrue(true); 
    } 
} 

答えて

1

このエラーは、beforeClassメソッドのTestBaseクラスに@Parameter注釈を使用したためです。このクラスを右クリックし、Run As> TestNG Testを実行してこのメ​​ソッドを実行すると、このメソッドにパラメータは渡されません。これは、beforeClassメソッドでオプションのパラメータを渡すことで解決できます。

@Parameters({"username"}) 
    @BeforeClass 
    public void beforeClass(@Optional("username") String username) { 
     System.out.println(username); 
    } 
としてあなた beforeClass方法を変更し@optional注釈を使用すると、testng.xmlなしでJavaクラスを実行したときに指定した値を渡します。それが役に立てば幸い!。

+1

また、Eclipseプラグインでパラメーターを構成することもできます。 – juherr

関連する問題