2016-08-23 4 views
1

Ich versuche, das unter Programm testng in Eclipse und bin immer um den Fehler zu laufen, wie unten dargestellt:NoClassDefFound Fehler mit testng

Code:

package TestNGPackage; 

import org.testng.annotations.Test; 
import org.testng.annotations.DataProvider; 

public class ParameterizedClass { 

    @Test(dataProvider = "Database") 

    public void UserDetails(String n, String s) { 
     System.out.println("ID and names are: "+ n + s); 
    } 

    @DataProvider 
    public Object[][] Database() { 
    Object[][] data= new Object[3][2]; 

    //rows- number of test to be repeated or number of test data set 
    // cols- number of parameters in the test data 

    //first row 
    data[0][0]="Controls team"; 
    data[0][1]="Vandee"; 

    //second row 
    data[1][0]="Risk team"; 
    data[1][1]="Raghu"; 

    //third row 
    data[2][0]="Forecast team"; 
    data[2][1]="Surbhi"; 

    return data; 
    } 

} 

Fehler:

[TestNG] Running: 
    C:\Users\Vandhana\AppData\Local\Temp\testng-eclipse-538297309\testng-customsuite.xml 

[Utils] Attempting to create C:\Java Programs\TestNG\test-output\Default suite\Default test.xml 
[Utils] Directory C:\Java Programs\TestNG\test-output\Default suite exists: true 
SKIPPED: UserDetails 
java.lang.NoClassDefFoundError: com/google/common/primitives/Ints 
    at org.testng.internal.annotations.JDK15TagFactory.createDataProviderTag(JDK15TagFactory.java:335) 
    at org.testng.internal.annotations.JDK15TagFactory.createTag(JDK15TagFactory.java:59) 
    at org.testng.internal.annotations.JDK15AnnotationFinder.findAnnotation(JDK15AnnotationFinder.java:217) 
    at org.testng.internal.annotations.JDK15AnnotationFinder.findAnnotation(JDK15AnnotationFinder.java:111) 
    at org.testng.internal.Parameters.findDataProvider(Parameters.java:326) 
    at org.testng.internal.Parameters.findDataProvider(Parameters.java:261) 
    at org.testng.internal.Parameters.handleParameters(Parameters.java:418) 
    at org.testng.internal.Invoker.handleParameters(Invoker.java:1240) 
    at org.testng.internal.Invoker.createParameters(Invoker.java:980) 
    at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1070) 
    at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:129) 
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:112) 
    at org.testng.TestRunner.privateRun(TestRunner.java:746) 
    at org.testng.TestRunner.run(TestRunner.java:600) 
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:366) 
    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:361) 
    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:319) 
    at org.testng.SuiteRunner.run(SuiteRunner.java:268) 
    at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52) 
    at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86) 
    at org.testng.TestNG.runSuitesSequentially(TestNG.java:1264) 
    at org.testng.TestNG.runSuitesLocally(TestNG.java:1189) 
    at org.testng.TestNG.runSuites(TestNG.java:1104) 
    at org.testng.TestNG.run(TestNG.java:1076) 
    at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:126) 
    at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:152) 
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:57) 
Caused by: java.lang.ClassNotFoundException: com.google.common.primitives.Ints 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    ... 27 more 


=============================================== 
    Default test 
    Tests run: 1, Failures: 0, Skips: 1 
=============================================== 

Die Klassendefinition ist noch vorhanden, ich erhalte diesen Fehler. Meine anderen Programme funktionieren gut, wenn ich mit TestNG laufe, also bezweifle ich das Problem der JAR-Dateien.

Antwort

0

Wenn es in einem anderen Kontext funktioniert, bedeutet das, dass Sie einen anderen Klassenpfad haben.
Verwenden Sie Maven, Gradle oder die Bibliotheken manuell hinzufügen?

+0

ich auf Eclipse- Download neuer Software geklickt und hinzugefügt testng durch das. Müssen wir andere Dateien separat hinzufügen? – Vandee

+0

Der doppelte Vorschlag zum Hinzufügen von Guava sollte funktionieren. –

+1

Großartig! Ich habe heruntergeladen und das Glas zu meinem Proj-Ordner hinzugefügt und es funktioniert jetzt. Vielen Dank! – Vandee

0

Bitte testng jar herunterladen und auf lib Ordner hinzufügen, wenn Maven verwenden, fügen Sie die unten Abhängigkeit

<dependency> 
     <groupId>org.testng</groupId> 
     <artifactId>testng</artifactId> 
     <version>6.9.10</version> 
    </dependency>