TestNG没有在测试套件中运行测试

时间:2014-03-17 14:42:35

标签: java eclipse testng

我正在尝试使用XML和TestNG运行测试套件,但我总是使用Eclipse和命令行获取相同的消息:

[TestNG] Running:
  /Users/achavez/Programs/Selenium/java/src/tests/resources/testng.xml


===============================================
TestingSuite1
Total tests run: 0, Failures: 0, Skips: 0
===============================================

文件读取正确,但似乎测试没有运行。

这些是我的testng.xml的内容:

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="TestingSuite1" verbose="1">
    <test name="Test1"  >
        <packages>
            <package name="tests"/>
        </packages>
    </test>
</suite>

这就是我的目录结构在Eclipse中的样子:

TestNG Directory Structure in Eclipse

此外,这也是我试图通过命令行运行测试套件的方式:

java -jar /Applications/Zend\ Studio.app/Contents/Resources/Java/plugins/org.testng.eclipse_6.8.6.20141201_2240/lib/testng.jar src/tests/resources/testng.xml

我试过通过eclipse清理项目,这似乎没有帮助。我也尝试过跑步:

mvn clean但它也没有完成这项工作。

非常感谢任何帮助我指向正确方向的帮助!

14 个答案:

答案 0 :(得分:16)

您还可以检查导入的Test annotation的导入,应该是:

import org.testng.annotations.Test;
@Test
public myTest(){ ... }

而不是例如:

import org.junit.Test;

答案 1 :(得分:7)

我必须将我的方法访问修饰符从private更改为public以使其正常工作。

答案 2 :(得分:4)

显然,TestNG在为测试套件生成XML文件方面是错误的。

即使按照他们对信件的指示,我的测试也没有运行。我最终得到了这个testng.xml文件,我的测试开始运行了:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="TestingSuite" parallel="none">
  <test name="Test1">
    <classes>
      <class name="tests.Page1"/>
    </classes>
  </test>
    <test name="Test 2">
        <classes>
            <class name="tests.Page2"/>
        </classes>
    </test>
</suite>

答案 3 :(得分:2)

我遇到了类似的问题,它通过在Eclipse中执行项目清理来解决(Project-&gt; Clean-&gt; Clean Selected project)

答案 4 :(得分:1)

就我而言,IDE自动导入@Test注释import org.junit.Test

将其更改为import org.testng.annotations.Test后,测试得到了正确的选择。

答案 5 :(得分:1)

代码中有两个问题:
1.这是因为我的@Test方法正在调用另一个将返回布尔值的方法。一旦我评论了相同的@Test和方法,整个testNG xml就开始工作。
2.第二个错误是,我在使用以下内容,这是对Poi类的错误分配。 工作簿WB =新的XSSFWorkbook(FIS); 工作表WSh = WB.getSheetAt(1); 我将以上更改为以下内容: XSSFWorkbook WB =新的XSSFWorkbook(FIS);     XSSFSheet WSh = WB.getSheetAt(1); 经过上述两个更正之后,脚本开始工作。

答案 6 :(得分:0)

在我的情况下,测试在@Test(...)中被意外标记为“enabled = false”。确保您的值标记为“true”。

答案 7 :(得分:0)

我也有这个问题,上述解决方案都没有奏效。但是,重启Eclipse了。我知道这似乎是一个不必要的答案,但如果我早点完成它,我自己会节省很多时间,所以无论如何我都会发布它。

答案 8 :(得分:0)

我遇到了同样的问题,这是我的结果: 在我的项目中,我有

中的测试文件
src/test/java/com/temporary/core

同时我在

中有测试资源
src/test/resources/com/temporary/Core

我发现,testng试图在第二个目录中找到测试文件。

当我使用Core到tcore的资源重命名目录时,问题得到解决。

答案 9 :(得分:0)

我遇到了同样的问题,我已经从适用于我的日食市场更新/安装了TestNG

答案 10 :(得分:0)

非常简单,但有时很难发现。当相应的数据提供程序未返回任何数据时,不会选择@Test

答案 11 :(得分:0)

如果@Test方法是public boolean(),返回类型为true / flase,则它不会执行。很奇怪,但在我的情况下有效。

答案 12 :(得分:0)

我已经做了所有人都在这里共享的所有可能解决方案,但仍然无法正常工作。

听说有人提到创建新的工作区。

所以我开始了一个新的工作区,并重新创建了整个TestNG套件和方法。

成功了!

以前工作区中的其他其他TestNg东西很可能与最近的Testng设置冲突。

所以启动一个新的工作区就解决了!

答案 13 :(得分:0)

当suite.xml中有组用法并且@BeforeXXX批注缺少alwaysRun = true时,也会发生这种情况。

@BeforeTest(alwaysRun = true)
public void setUp() throws IOException {
}