TestNG套件的NumberFormatException

时间:2016-12-13 07:36:45

标签: java xml testng

我正在尝试通过命令行运行我的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>

导致错误的原因是什么?如何解决?

1 个答案:

答案 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配置。