0
私は、TestNGを使用して、同時クロスブラウザテストフレームワークのスタブを動かそうとしています。しかし、私は親クラスから@Parametersを取得し、私はしませんでしたTestNGは親クラスから@Parametersを継承します
<?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;
}
}
ChildTest
public class ChildTest extends BaseTest {
@Test
public void test() {
System.out.println(browser);
}
}
TestNG.xml
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 Annotations in a Superclass
(BaseTest)すべてのテストスイート用です。ここからBaseTestを削除すると、それは意味をなさないでしょう。 –
すべてのテストクラスはBaseTestを拡張します。したがって、TestNGはイントロスペクションでそれを検出します。だから、それをスイートファイルに入れてもいなくても効果はありません。 – juherr
私の解決策はあなたのパラメータの問題を修正していますか? – juherr