我正在尝试通过命令行运行我的Selenium测试。为了实现它,我创建了一个包含多个测试的示例类,以及一个 testng.xml 文件。
我在命令行中一个接一个地运行以下命令:
d:
cd D:\Yes\selenium\sel_mock_aut_tests\Nothing
set pp=D:\Yes\selenium\sel_mock_aut_tests\Nothing
set classpath=%pp%\bin;%pp%\lib\*
java org.testng.TestNG %pp%\ATestNG.xml
这会导致以下错误:
[TestNG] [ERROR] java.lang.NumberFormatException: For input string: "1.0"
我的 testng.xml 文件如下所示(并命名为 ATestNG.xml ):
<suite name="MyTests" verbose="1.0">
<test name="BatExecution">
<classes>
<class name="TestNGOperations.RunUsingBatFile" />
</classes>
</test>
</suite>
导致错误的原因是什么?如何解决?
答案 0 :(得分:5)
查看TestNG文档中的the first example of a suite:
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Suite1" verbose="1" >
<test name="Nopackage" >
<classes>
<class name="NoPackageTest" />
</classes>
</test>
<test name="Regression1">
<classes>
<class name="test.sample.ParameterSample"/>
<class name="test.sample.ParameterTest"/>
</classes>
</test>
</suite>
导致错误的原因是verbose="1.0"
。 TestNG尝试将1.0
解析为int
,从而导致异常。
你可能想要verbose="1"
。
作为旁注,TestNG文档对verbose
属性相当稀疏。 This blogpost在解释属性可以包含的值方面做得很好:
在了解verbose属性的用法之前,首先必须知道它可以接受的值。详细属性可以取1到10之间的值,如下所示:
详细=#&34; 1&#34;
冗长=#&34; 2&#34;
冗长=#&34; 3&#34;
冗长=#&34; 4&#34;
冗长=#&34; 5&#34;
冗长=#&34; 6&#34;
冗长=#&34; 7&#34;
冗长=#&34; 8&#34;
冗长=#&34; 9&#34;
冗长=&#34; 10&#34;如果我们使用较小的数字指定verbose属性,那么测试结果会在Eclipse IDE中记录详细信息 - &gt; &#39;控制台&#39;窗口会少一些。但是,如果您想获得更多详细信息,并希望在Eclipse IDE中更清楚地了解测试结果日志详细信息 - &gt; &#39;控制台&#39;窗口然后你必须为详细属性分配更大的数字。
当然,这不仅适用于Eclipse,它还是一个TestNG配置。