Estoy consiguiendo el error anterior en mi programa mientras que las pruebas TestNG. También instalé TestNG plug-in a través Help -> Install New
.
Soy consciente de que NoClassDefFoundError significa que la clase está presente en la ruta de clase en tiempo de compilación, pero no existe en la ruta de clase en tiempo de ejecución.
A continuación es mi StackTrace.
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
No estoy seguro sobre cómo cambiar mi archivo de ruta de clase para resolver el problema.
<?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>
Mi archivo de clase Java también se encuentra en la carpeta src, que se parece a esto.
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......");
}
}
No hay ningún archivo pom y el siguiente son los archivos existentes y la estructura de carpetas.
Añadir la falta google-guice-core
de dependencia en el pom.xml
.
<dependency>
<groupId>com.google.inject</groupId>
<artifactId>guice</artifactId>
<version>4.1.0</version>
</dependency>
o descargar el frasco aquí y añadirlo a la ruta de clase.