在Maven中运行TestNG测试失败

问题描述:

我正在尝试在Maven中运行TestNG测试。这里是我的配置:在Maven中运行TestNG测试失败

的pom.xml:

 <dependencies> 
      <dependency> 
     <groupId>org.testng</groupId> 
     <artifactId>testng</artifactId> 
     <version>6.3.1</version> 
     <scope>test</scope> 
    </dependency> 
</dependencies> 
<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-surefire-plugin</artifactId> 
      <version>2.11</version> 
      <configuration> 
       <suiteXmlFiles> 
        <suiteXmlFile>src/test/resources/testng.xml</suiteXmlFile> 
       </suiteXmlFiles> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

这是TestNG的的conf文件:

<suite name="Suite1"> 
<test name="Test1"> 
    <groups> 
     <run> 
      <include name="Setup" /> 
      <include name="Material" /> 
     </run> 
    </groups> 

    <packages> 
     <package name="coloright.hibernate.*" /> 
    </packages> 
</test> 

当我用Eclipse运行

- 没问题。

当我MVN试运行 - 所有测试成功运行,但构建失败,出现错误:

suiteXmlFiles配置,但没有TestNG的依赖

请帮

+0

如果在调试模式下运行,万无一失插件应该在哪里它寻找的testng.xml文件报告的位置(在控制台) 。它说什么? – djangofan 2013-10-30 17:17:04

看起来,你是打到this surefire bug,这与状态looks to be still open相反。

如果surefire无法找到<suiteXmlFile>中指定的文件,则会出现该错误。你可以尝试指定testng.xml省略src/test/resources看看是否有帮助? documentation未提及如何指定此位置 - 它应该相对于基本目录还是相对于测试资源文件夹。

+0

省略路径不起作用。谢谢回复。 – rperez 2012-01-04 15:31:51

+0

@rperez完整路径如何:'$ {basedir}/src/test/resources/testng.xml' - 假设这确实是错误的原因? – Raghuram 2012-01-05 04:01:20

+0

当文件被找到并且测试运行时,它不是路径问题。在上述例外情况下,Maven构建失败(即使所有测试都通过了) – rperez 2012-01-11 13:15:40

你可以试试这个。不知道这是否会为你工作,但我这样做有时,虽然它看起来像它的冗余:

<suiteXmlFiles> 
    <suiteXmlFile> 
    ${project.build.testOutputDirectory}/testng.xml 
    </suiteXmlFile> 
</suiteXmlFiles> 

添加万无一失,TestNG的依赖于你的pom.xml:

<dependency> 
<groupId>org.apache.maven.surefire</groupId> 
<artifactId>surefire-testng</artifactId> 
<version>2.16</version> 
</dependency> 

请检查您的在构建路径中的输出文件夹应该像/ target/test-classes。

还要检查你的POM进入这个并相应更新:

<testSourceDirectory>src</testSourceDirectory> 
    <outputDirectory>target/test-classes</outputDirectory> 
     <resources> 
     <resource> 
      <directory>src</directory> 
     </resource> 
    </resources>