Исключение в потоке "main" java .lang.NoClassDefFoundError в testng - PullRequest
1 голос
/ 05 апреля 2020

Я получаю вышеуказанную ошибку в моей программе во время тестирования testNG. Я также установил свой плагин testng через help-> install new.

Я знаю, что NoClassDefFoundError означает, что класс присутствует в пути к классам во время компиляции, но его нет в путь к классам во время выполнения.

Ниже приведена моя трассировка стека.

Exception in thread "main" java.lang.NoClassDefFoundError: com/google/inject/Stage
    at org.testng.internal.Configuration.<init>(Configuration.java:33)
    at org.testng.TestNG.init(TestNG.java:216)
    at org.testng.TestNG.<init>(TestNG.java:200)
    at org.testng.remote.AbstractRemoteTestNG.<init>(AbstractRemoteTestNG.java:17)
    at org.testng.remote.support.RemoteTestNG6_12.<init>(RemoteTestNG6_12.java:18)
    at org.testng.remote.support.RemoteTestNGFactory6_12.createRemoteTestNG(RemoteTestNGFactory6_12.java:16)
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:67)
Caused by: java.lang.ClassNotFoundException: com.google.inject.Stage
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:602)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
    ... 7 more

Я не уверен, как изменить мой файл пути к классам для решения проблемы.

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7">
        <attributes>
            <attribute name="module" value="true"/>
        </attributes>
    </classpathentry>
    <classpathentry kind="src" path="src"/>
    <classpathentry kind="con" path="org.testng.TESTNG_CONTAINER"/>
    <classpathentry kind="output" path="bin"/>
</classpath>

Мой java файл класса также находится в папке sr c, которая выглядит следующим образом.

import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;

public class ScreencastTestClass {

    @BeforeTest
    public void StartRCServiver() {
        System.out.println(" RC server starting......");
    }

    public void testLogIn() {
        System.out.println(" Test is executing......");
    }

    @AfterTest
    public void ShutDownRCServer() {
        System.out.println(" RC server stopping......");
    }

}

Файл pom отсутствует, ниже приведены существующие файлы и структура папок. enter image description here

1 Ответ

2 голосов
/ 05 апреля 2020

Добавьте отсутствующую зависимость google-guice-core в pom.xml.

<dependency>
    <groupId>com.google.inject</groupId>
    <artifactId>guice</artifactId>
    <version>4.1.0</version>
</dependency>

или скачайте jar здесь и добавьте его в путь к классам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...