我正在尝试使用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中的样子:
此外,这也是我试图通过命令行运行测试套件的方式:
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
但它也没有完成这项工作。
非常感谢任何帮助我指向正确方向的帮助!
答案 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 {
}