java - 获取 java.lang.ClassNotFoundException : org. testng.TestNG 错误

标签 java testing automation automated-tests

我正在尝试使用下面的代码从 main 方法执行我的 testng.xml 文件。但是得到一个 NoClassDefFoundError。知道是什么导致了这个问题吗?

    public static void main( String[] args )
{
    TestNG testng = new TestNG();
    List<String> suites = Lists.newArrayList();
    suites.add("testng.xml");
    testng.setTestSuites(suites);
    testng.run();
}

Exception in thread "main" java.lang.NoClassDefFoundError: org/testng/TestNG
        at com.automation.app.App.main(App.java:21)
Caused by: java.lang.ClassNotFoundException: org.testng.TestNG
        at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        ... 1 more

最佳答案

这里的问题是,当您执行 jar 时,您在类路径上缺少依赖库,因为 jar 只有您项目中的类。

这里你需要的是

  1. build an executable jar with all the dependencies

  1. specify the dependencies on command line

例如 java -cp your.jar:lib/*

其中 libs/* 是您的依赖 JAR 的路径

我推荐选项一,因为如果 jar 包含所有依赖项,您可以在任何地方运行该 jar。

关于java - 获取 java.lang.ClassNotFoundException : org. testng.TestNG 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54672809/

相关文章:

testing - 为测试和反馈扩展设置冲刺板

c# - 在 C# 中创建 COM 自动化服务器

python-3.x - python Selenium : How to use debugger_address option in chrome driver for Remote Debugging?

java - 我如何在 Eclipse 中解决这个项目方面?

database - 基于分布式SOA架构的系统压力测试

c# - CollectionAssert.Contains() 作为 NUnit 的 Assert.Contains() 的替代品

windows - 如何在 Windows 的脚本中调用 Matlab?

java - 在 Jackson Mixins 中同时使用 @JsonIgnore 和 @JsonProperty 时出现问题

java - Spring boot - 不支持不必要地替换不存在的任务。直接使用create()或register()代替

java - ImageIO PSD 库插件在 jar 中不起作用