Java 通过命令行运行TestNG
一些注释:Java 通过命令行运行TestNG,java,eclipse,selenium-webdriver,testng,Java,Eclipse,Selenium Webdriver,Testng,一些注释: 1.我最初使用的testngjar来自我们java项目中的maven repo。以下所有方法都通过maven testNG jar和新的testNG 6.9.12下载进行了测试。 2.我可以从eclipse中运行这个文件。只有在尝试从命令行运行时出现问题 3.最终目标是通过按下javafx应用程序按钮触发命令行来运行测试。如果提供的解决方案避免在cmd中键入绝对路径,我将不胜感激,因为该应用程序将在不同的机器上使用,但只要我能在我的机器上运行它,我将尝试分别解决其余问题:) 4.从我
1.我最初使用的testngjar来自我们java项目中的maven repo。以下所有方法都通过maven testNG jar和新的testNG 6.9.12下载进行了测试。
2.我可以从eclipse中运行这个文件。只有在尝试从命令行运行时出现问题
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“[testngjar的完整路径]:[要运行的已编译java类的完整路径]”org.testNG.testNG[testngxml文件名]
java-cp“C:\Users\johndoe\Documents\My Docs\03\u OE\java\workspace\Maven\m2\repository\org\testng\testng\6.9.10\testng-6.9.10.jar:C:\Users\johndoe\Documents\My Docs\03\u OE\java\workspace\KeywordDrivenTool\JavaTestNBS\target\testclasses\NBS\NBS\testcases\testcases\org.testng.testng.xml
结果:Error: Could not find or load main class org.testng.TestNG
Error: Could not find or load main class org.testng.TestNG
我还尝试将[testNG jar的完整路径]
替换为上面第二个源链接中建议的“likejava-cp”:C:\Users\johndoe\Documents\My Docs\03_OE\java\workspace\KeywordDrivenTool\JavaTestNBS\target\testclasses\NBS\testcases“org.testNG.testNG test.xml
,得到了相同的错误
方法2来源:
1. <代码>https://www.tutorialspoint.com/testng/testng_environment.htm
TESTNG\u HOME=C:\Users\johndoe\Documents\My Docs\03\u OE\Java\workspace\Maven\m2\repository\org\TESTNG\TESTNG\6.9.10
CLASSPATH=%CLASSPATH%;%TESTNG_HOME%\TESTNG-6.9.10.jar
java-cp“[要运行的已编译java类的完整路径]”org.testng.testng[testngxml文件名]
java-cp“C:\Users\johndoe\Documents\My Docs\03\u OE\java\workspace\KeywordDrivenTool\JavaTestNBS\target\testclasses\NBS\testcases”org.testng.test.xml
结果:Error: Could not find or load main class org.testng.TestNG
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\u OE\java\workspace\Maven\m2\repository\org\testng\testng\6.9.10\testng-6.9.10.jar”org.testng.testng.test.xml
结果:然后,我根据
http://stackoverflow.com/questions/7100821/suddenly-cant-run-testng-tests-from-ant-testng-caused-by-java-lang-classnot
java-cp“;C:\Users\johndoe\Documents\My Docs\03\u OE\java\workspace\Maven\m2\repository\org\testng\testng\testng\6.9.10\testng-6.9.10.jar;C:\Users\johndoe\Documents\My Docs\03\u OE\java\workspace\Maven\m2\repository\com\beust\jcommander\1.48\jcommander-1.48.jar”org.testng.testng.xml
结果:
[TestNG] [ERROR]
Cannot find class in classpath: NBS.testcases.LoginWithBayanUser
[TestNG] [ERROR]
Cannot find class in classpath: NBS.testcases.LoginWithBayanUser
java-cp中添加了编译后的java类路径".;C:\Users\johndoe\Documents\My Docs\03\u OE\Java\workspace\Maven\m2\repository\org\testng\testng\6.9.10\testng-6.9.10.jar;C:\Users\johndoe\Documents\My Docs\03\u OE\Java\workspace\Maven\m2\repository\com\beust\jcommander\1.48\jcommander-1.48.jar;C:\Users\johndoe\Documents\My Docs\03\u OE\Java\workspace\KeywordDrivenTool\JavaTestNBS\target\testclasses\NBS\testcases“org.testng.testng test.xml
结果:
[TestNG] [ERROR]
Cannot find class in classpath: NBS.testcases.LoginWithBayanUser
[TestNG] [ERROR]
Cannot find class in classpath: NBS.testcases.LoginWithBayanUser
总而言之:我认为我最近的一次尝试是在对方法3进行故障排除之后,但仍然无法运行xml 命令分解: 完整:
java-cp“。;C:\Users\johndoe\Documents\My Docs\03\u OE\Java\workspace\Maven\m2\repository\org\testng\testng\6.9.10\testng-6.9.10.jar;C:\Users\johndoe\Documents\My Docs\03\u OE\Java\workspace\Maven\m2\repository\com\beust\jcommander\1.48\jcommander-1.48.jar;C:\Users\johndoe\Documents\My Docs\03\u OE\Java\workspace\KeywordDrivenTool\JavaTestNBS\target\testclasses\NBS\testcases“org.testng.testng test.xml
第一部分:java-cp
第二部分:
“[.];[testNG jar的完整路径]代码>
第三部分:“[jcommander jar的完整路径];
第四部分:“[已编译java类的完整路径]”
第五部分:org.testng.testng[testng xml文件名]
在[testNG xml文件目录]上执行的命令
请帮忙!提前谢谢
=========================================================================
编辑1:
按照Julien Herr的建议,我从compiled java classes文件夹中删除了额外的文件夹,这产生了一个不同的结果
[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>
希望您能帮忙!谢谢!试试:
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" org.testng.TestNG test.xml
尝试:
我花了整整一个下午去f