我能够在Eclipse中完美地运行testng。但是,我想使用命令行(Win 8)运行它,如不同论坛上所述。以下是我正在尝试的错误 -
1.
java -cp "D:\testng\testng-6.8.7.jar" org.testng.TestNG testng.xml
Exception in thread "main" java.lang.NoClassDefFoundError: com/beust/jcommander/
ParameterException
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
at java.lang.Class.getMethod0(Unknown Source)
at java.lang.Class.getMethod(Unknown Source)
at sun.launcher.LauncherHelper.getMainMethod(Unknown Source)
at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
Caused by: java.lang.ClassNotFoundException: com.beust.jcommander.ParameterExcep
tion
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 6 more
2. java -cp "D:\testng\testng-6.8.7.jar:{$PATH_TILL_HERE}\target\test-classes\org\test\automation\links\LinksTest.cl
ass" org.testng.TestNG testng.xml
Error: Could not find or load main class org.testng.TestNG
感谢您的任何指示。
答案 0 :(得分:2)
我猜你正在使用一个不包含依赖关系的jar,比如JCommander(可能是用来与Maven一起创建的)。尝试使用此zip中的jar。
答案 1 :(得分:2)
在命令行命令中,您尝试运行testng.jar,不幸的是,testng.jar使用JCommander,它是一个依赖项。它还必须具有该jar的位置以便执行。
java -cp" D:\ testng \ testng-6.8.7.jar":"这应该替换为Jcommander jar的路径" org.testng.TestNG testng.xml //希望这有效
有人应该向testng发送一条注释,将jcommander代码放入jar中。
答案 2 :(得分:1)
与错误建议一样,您需要在类路径中包含JCommander。您可以按照上述链接查看最新版本,然后点击" Artifact"链接下载Jar。
答案 3 :(得分:0)
将JCommander添加到类路径可以解决问题。
答案 4 :(得分:0)
在jcommander.jar
中添加D:\testng
并运行以下命令:
java -cp "D:\testng\*" org.testng.TestNG testng.xml
答案 5 :(得分:-2)
通过使用surefire插件使用“mvn package”命令运行TestNG测试并解决对外部jar的所有依赖来修复此问题。