TestNG DataProvider是否可以从testng.xml配置文件中读取测试数据?或者出于某种原因这是不现实的?我希望能够从套件级别和课堂级别读取该文件中的测试数据。TestNG DataProvider从testng.xml配置文件读取测试数据?
因此,给定一个像这样的testing.xml文件(我不确定它是否现实),我该怎么做?我之前使用XStream(或Jackson)编写了一个DataProvider,所以我对自己的自定义.xml格式非常熟悉,但坚持严格格式的testing.xml是我担心这一点的地方。
下testing.xml是显而易见的,但无效,我只是想展现的那种事情,我想这样做:
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="TestAll">
<parameter name="hubUrl" value="http://localhost:4444/wd/hub"/>
<parameter name="reportFile" value="CustomReport.html"/>
<test name="etsy">
<parameter name="reportFile" value="CustomReport.html"/>
<classes>
<class name="qa.examples.suite.TestSearch">
<parameter name="appUrl" value="http://etsy.com" type="java.lang.String"/>
<parameter name="browser" value="Firefox" type="java.lang.String"/>
<parameter name="testEnabled" value="true" type="java.lang.Boolean"/>
<methods>
<include name="testEtsySearch"/>
<tests>
<test>
<parameter name="testNum" value="1" type="java.lang.Integer"/>
<parameter name="searchTerm" value="cell phone" type="java.lang.String"/>
<parameter name="searchTerm" value="batteries" type="java.lang.String"/>
</test>
<test>
<parameter name="testNum" value="2" type="java.lang.Integer"/>
<parameter name="searchTerm" value="buttons" type="java.lang.String"/>
<parameter name="searchTerm" value="metal" type="java.lang.String"/>
</test>
</tests>
</include>
</methods>
</class>
<class name="qa.examples.suite.TestFilters" />
</classes>
</test>
</suite>
那么,这样的事情可能吗?如果是这样,你会怎么做?
你确定这样吗?根据我的经验,数据提供者方法在套件之前运行(因为保留设置为运行时),因此如何才能知道单个测试的上下文?这些上下文在测试运行之前是未知的:我错了吗? – djangofan
@djangofan查看已更新的答案 – user1058106
一旦我意识到TestNG中的所有配置方法都可以采用某种上下文参数,整个世界已经为我打开了。谢谢! – djangofan