0

TestNG を使用して、同時実行クロス ブラウザー テスト フレームワークのスタブを作成しようとしています。しかし、親クラスから@Parametersを取得できず、取得し続けているようです

Parameter 'browsername' is required by @Configuration on method setup but has not been marked @Optional or defined
    at org.testng.internal.Parameters.createParameters(Parameters.java:155)
    at org.testng.internal.Parameters.createParameters(Parameters.java:358)
    at org.testng.internal.Parameters.createConfigurationParameters(Parameters.java:86)
    at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:199)
    at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:138)
    at org.testng.internal.TestMethodWorker.invokeBeforeClassMethods(TestMethodWorker.java:175)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:107)
    at org.testng.TestRunner.privateRun(TestRunner.java:767)
    at org.testng.TestRunner.run(TestRunner.java:617)
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:348)
    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:343)
    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:305)
    at org.testng.SuiteRunner.run(SuiteRunner.java:254)

TestNG.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="1265_Suite" parallel="tests" verbose="2" thread-count="2" preserve-order="true">
    <test name="92" parallel="false" preserve-order="true">
        <classes>
            <class name="com.javacodegeeks.testng.maven.BaseTest"/>
            <class name="com.javacodegeeks.testng.maven.ChildTest"/>
            <parameter name="browsername" value="chrome"/>
        </classes>
    </test>
    <test name="93" parallel="false" preserve-order="true">
        <classes>
            <class name="com.javacodegeeks.testng.maven.BaseTest"/>
            <class name="com.javacodegeeks.testng.maven.ChildTest"/>
            <parameter name="browsername" value="firefox"/>
        </classes>
    </test>
</suite>

BaseTest

public class BaseTest extends Assert {

    protected String browser;

    @BeforeClass
    @Parameters({"browsername"})
    public void setup(String browsername) {
        System.err.println("Browser name in @BeforeClass is " + browsername);
        this.browser = browsername;
    }
}

子テスト

public class ChildTest extends BaseTest {

    @Test
    public void test() {
        System.out.println(browser);
    }
}

これを機能させる方法について十分な情報が見つからなかったので、何かアイデアがあれば聞いてみたいと思います。

すでにチェック済みですが、十分な情報がありません: スーパークラスの TestNG アノテーション

4

1 に答える 1