【发布时间】:2017-01-12 05:19:11
【问题描述】:
一些注意事项:
1.我最初使用的TestNG jar来自我们java项目中的maven repo。以下所有方法均使用 maven testNG jar 和新的 testNG 6.9.12 下载进行了测试。
2.我可以在eclipse中运行文件just file。只有当我尝试从命令行运行时才会出现问题。
3.最终目标是通过按下javafx应用程序按钮触发命令行运行测试。如果提供的解决方案避免在 cmd 中键入绝对路径,我将不胜感激,因为该应用程序将在不同的机器上使用,但只要我可以在我的机器上运行它,我会尝试单独找出其余的: )
4. 根据我在网上看到的情况,尝试运行 testng xml 文件时会遇到不同的问题。如果此堆栈问题遵循与运行文件相关的一系列其他问题,请多多包涵。提前致谢。
问题:
我正在尝试使用命令行运行 testNG“test.xml”。
网上有很多指南,但没有一个适合我。
以下是我迄今为止尝试过的一些方法,以及其他几种方法:
方法 1
来源:
1.https://www.safaribooksonline.com/library/view/testng-beginners-guide/9781782166009/ch02s05.html
2.http://stackoverflow.com/questions/11896791/how-to-run-testng-from-command-line
java -cp "[complete path to testNG jar]:[complete path to the compiled java classes to run]" org.testng.TestNG [testng xml file name]
java -cp "C:\Users\johndoe\Documents\My Docs\03_OE\Java\workspace\Maven\m2\repository\org\testng\testng\6.9.10\testng-6.9.10.jar:C:\Users\johndoe\Documents\My Docs\03_OE\Java\workspace\KeywordDrivenTool\JavaTestNBS\target\test-classes\NBS\testcases" org.testng.TestNG test.xml
结果:
Error: Could not find or load main class org.testng.TestNG
我还尝试将[complete path to testNG jar] 替换为“。”就像上面第二个源链接中建议的java -cp ".:C:\Users\johndoe\Documents\My Docs\03_OE\Java\workspace\KeywordDrivenTool\JavaTestNBS\target\test-classes\NBS\testcases" org.testng.TestNG test.xml 一样,得到了同样的错误。
方法二
来源:
1.https://www.tutorialspoint.com/testng/testng_environment.htm
TESTNG_HOME = C:\Users\johndoe\Documents\My Docs\03_OE\Java\workspace\Maven\m2\repository\org\testng\testng\6.9.10
CLASSPATH = %CLASSPATH%;%TESTNG_HOME%\testng-6.9.10.jar
java -cp "[complete path to the compiled java classes to run]" org.testng.TestNG [testng xml file name]
java -cp "C:\Users\johndoe\Documents\My Docs\03_OE\Java\workspace\KeywordDrivenTool\JavaTestNBS\target\test-classes\NBS\testcases" org.testng.TestNG test.xml
结果:
Error: Could not find or load main class org.testng.TestNG
方法3
来源:
1.http://stackoverflow.com/questions/28303723/could-not-find-or-load-main-class-org-testng-testng
java -cp ".;C:\Users\johndoe\Documents\My Docs\03_OE\Java\workspace\Maven\m2\repository\org\testng\testng\6.9.10\testng-6.9.10.jar" org.testng.TestNG test.xml
结果:
java.lang.NoClassDefFoundError: com/beust/jcommander/
ParameterException
然后我尝试根据http://stackoverflow.com/questions/7100821/suddenly-cant-run-testng-tests-from-ant-testng-caused-by-java-lang-classnot的cmets对方法3进行故障排除
java -cp ".;C:\Users\johndoe\Documents\My Docs\03_OE\Java\workspace\Maven\m2\repository\org\testng\testng\6.9.10\testng-6.9.10.jar;C:\Users\johndoe\Documents\My Docs\03_OE\Java\workspace\Maven\m2\repository\com\beust\jcommander\1.48\jcommander-1.48.jar" org.testng.TestNG test.xml
结果:
[TestNG] [ERROR]
Cannot find class in classpath: NBS.testcases.LoginWithBayanUser
java -cp ".;C:\Users\johndoe\Documents\My Docs\03_OE\Java\workspace\Maven\m2\repository\org\testng\testng\6.9.10\testng-6.9.10.jar;C:\Users\johndoe\Documents\My Docs\03_OE\Java\workspace\Maven\m2\repository\com\beust\jcommander\1.48\jcommander-1.48.jar;C:\Users\johndoe\Documents\My Docs\03_OE\Java\workspace\KeywordDrivenTool\JavaTestNBS\target\test-classes\NBS\testcases" org.testng.TestNG test.xml
结果:
[TestNG] [ERROR]
Cannot find class in classpath: NBS.testcases.LoginWithBayanUser
总结一下:
我认为我得到的最接近的尝试是在故障排除方法 3 之后,但仍然无法运行 xml。相同的 xml 在 eclipse 中运行。
命令分解:
满员:java -cp ".;C:\Users\johndoe\Documents\My Docs\03_OE\Java\workspace\Maven\m2\repository\org\testng\testng\6.9.10\testng-6.9.10.jar;C:\Users\johndoe\Documents\My Docs\03_OE\Java\workspace\Maven\m2\repository\com\beust\jcommander\1.48\jcommander-1.48.jar;C:\Users\johndoe\Documents\My Docs\03_OE\Java\workspace\KeywordDrivenTool\JavaTestNBS\target\test-classes\NBS\testcases" org.testng.TestNG test.xml
第一部分:java -cp
第二部分:"[.];[full path to testNG jar];
第三部分:"[full path to jcommander jar];
第四部分:"[full path to compiled java classes]"
第五部分:org.testng.TestNG [testNG xml file name]
在 [testNG xml 文件目录] 上执行的命令
请帮忙!提前致谢!
================================================ ========
编辑 1:
我按照 Julien Herr 的建议从编译的 java 类文件夹中删除了额外的文件夹,它产生了不同的结果。我想我越来越近了,但仍然无法运行。
[TestNGClassFinder] Warning: Can't link and determine methods of class NBS.testcases.LoginWithBayanUser
[TestNGClassFinder] Warning: Can't link and determine methods of class NBS.testcases.LoginWithBayanUser2
[[TestNGClassFinder]] Unable to read methods on class NBS.testcases.LoginWithBayanUser - unable to resolve class reference Automation/framework/dataModel/CaseInfo
[[TestNGClassFinder]] Unable to read methods on class NBS.testcases.LoginWithBayanUser2 - unable to resolve class reference Automation/framework/dataModel/CaseInfo
[TestNG] Running:
C:\Users\johndoe\Documents\My Docs\03_OE\Java\workspace\KeywordDrivenTool\JavaTestNBS\target\test-classes\testngRunner\test.xml
===============================================
Suite1
Total tests run: 0, Failures: 0, Skips: 0
===============================================
这是我的 test.xml 文件的内容:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite1" verbose="1" parallel="classes" thread-count="2" preserve-order="true">
<test name="Regression suite 1" >
<parameter name="globalXlsDataIndex" value="1"/>
<classes>
<class name="NBS.testcases.LoginWithBayanUser" />
<class name="NBS.testcases.LoginWithBayanUser2" />
</classes>
</test>
</suite>
重申一下,同样的 xml 文件在 eclipse 中运行。
谢谢!
================================================ ========
编辑 2:
我在包含Automation/framework/dataModel/CaseInfo 的已编译jar 所在的类路径中添加了C:\Users\johndoe\Documents\My Docs\03_OE\Java\workspace\KeywordDrivenTool\JavaTestNBS\lib\*。现在我收到另一个错误:
[TestNG] [ERROR]
Cannot instantiate class NBS.testcases.LoginWithBayanUser
希望您能提供帮助!谢谢!
【问题讨论】:
-
我在帖子中引用了该 URL 作为我尝试过但不起作用的方法之一。 (方法 1,来源 2。)遗憾的是,由于缺少代表,我不能发布超过 2 个链接,所以我不得不将其作为纯文本。
标签: java eclipse selenium-webdriver testng