无法从命令行运行testng

时间:2013-10-22 15:00:24

标签: testng

我能够在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

感谢您的任何指示。

6 个答案:

答案 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的所有依赖来修复此问题。