获取"java.lang.NoClassDefFoundError:com/beust/jcommander/ParameterException"异常

Uda*_*day 4 testng selenium selenium-webdriver

我想以编程方式调用testng.不是eclipse插件.

我已经关联了"testng-6.8.21.jar"并在eclipse中运行,我运行下面的代码:

import org.testng.TestNG;

public class SampCls 
{
        public static void main(String[] args)
        {
            TestNG test=new TestNG();
        }
}
Run Code Online (Sandbox Code Playgroud)

低于例外.我怎样才能克服这个例外.

Exception in thread "main" java.lang.NoClassDefFoundError: com/beust/jcommander/ParameterException
    at SampCls.main(SampCls.java:12)
Caused by: java.lang.ClassNotFoundException: com.beust.jcommander.ParameterException
    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)
    ... 1 more
Run Code Online (Sandbox Code Playgroud)

sgr*_*lon 12

如果您使用Maven项目,则需要添加此依赖项:

<dependency>
    <groupId>com.beust</groupId>
    <artifactId>jcommander</artifactId>
    <version>1.48</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

COM /博伊斯特/ jcommander/ParameterException里面

如果您使用没有Maven的项目,则需要在类路径中添加此jar文件:

jcommander-1.48.jar
Run Code Online (Sandbox Code Playgroud)

您可以在central.maven.org - > jcommander-1.48.jar下载此jar文件


sgr*_*lon 3

改变:

Class cls = Class.forName("TestSuite.TestCases.AddContactHappyPath").getClass();
test.setTestClasses(new Class[] { cls });
Run Code Online (Sandbox Code Playgroud)

经过:

 test.setTestClasses(new Class[] { AddContactHappyPath.class });
Run Code Online (Sandbox Code Playgroud)

所有代码都是

import org.testng.TestNG;
import com.xxx.test.others.AddContactHappyPath;

public class SampCls {
    public static void main(String[] args) throws ClassNotFoundException {
        TestNG test = new TestNG();
         test.setTestClasses(new Class[] { AddContactHappyPath.class });
         test.run();
    }
}
Run Code Online (Sandbox Code Playgroud)

测试NG代码是:

import org.testng.annotations.*;

public class AddContactHappyPath {

    @Test()
    public void AddContactHappyPathTest() {
        System.out.println("hello world");
    }
}
Run Code Online (Sandbox Code Playgroud)

控制台结果:

[TestNG] Running:
  Command line suite

hello world

===============================================
Command line suite
Total tests run: 1, Failures: 0, Skips: 0
===============================================
Run Code Online (Sandbox Code Playgroud)