2016-06-26 12 views
0

Wenn Sie einen Java-Selendroid-Code mit testNG ausführen, wird eine Fehlermeldung angezeigt: "Eine Java-Ausnahme ist aufgetreten." mit Ausnahme unten -Fehler bei der Verwendung von TestNG

Exception in thread "main" java.lang.NoClassDefFoundError: org/testng/TestNGException 
at java.lang.Class.getDeclaredMethods0(Native Method) 
at java.lang.Class.privateGetDeclaredMethods(Class.java:2688) 
at java.lang.Class.privateGetMethodRecursive(Class.java:3035) 
at java.lang.Class.getMethod0(Class.java:3005) 
at java.lang.Class.getMethod(Class.java:1771) 
at sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:544) 
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:526) 
Caused by: java.lang.ClassNotFoundException: org.testng.TestNGException 
at java.net.URLClassLoader$1.run(URLClassLoader.java:372) 
at java.net.URLClassLoader$1.run(URLClassLoader.java:361) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(URLClassLoader.java:360) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
... 7 more 

Unten ist die selendroid Java-Code -

package com.selendroid.demo; 

import org.openqa.selenium.WebDriver; 

import io.selendroid.SelendroidDriver; 
import io.selendroid.common.SelendroidCapabilities; 
import io.selendroid.common.device.DeviceTargetPlatform; 
import io.selendroid.standalone.SelendroidConfiguration; 
import io.selendroid.standalone.SelendroidLauncher; 

public class Sele { 

    private WebDriver driver; 

    public void setUp() throws Exception { 

     System.out.println("------------------------Started"); 

     SelendroidConfiguration config = new SelendroidConfiguration(); 

     // Add the selendroid-test-app to the standalone server 
     config.addSupportedApp("Demo.apk"); 

     // start the standalone server 
     SelendroidLauncher selendroidServer = new SelendroidLauncher(config); 
     selendroidServer.launchSelendroid(); 

     // Create the selendroid capabilities 
     SelendroidCapabilities capa = new SelendroidCapabilities(
       "io.selendroid.androiddriver:0.16.0"); 

     capa.setAut("com.example.demo:1.0"); 
     capa.setPlatformVersion(DeviceTargetPlatform.ANDROID15); 
     // capa.setEmulator(false); 
     // capa.setCapability(SelendroidCapabilities.EMULATOR, true); 
     // capa.setSerial("emulator-5554"); 
     SelendroidDriver driver = new SelendroidDriver(capa); 

     capa.wait(100); 
     driver = new SelendroidDriver(capa); 



    } 

    } 

Nicht vertraut mit testng und selendroid so bitte der Lösung im Detail geben.

Antwort

1

Es scheint, dass Sie das Testg-Glas nicht in Ihrem Klassenpfad haben. Einfach hinzufügen.

0

Ich hatte das gleiche Problem, und ich fand, dass die Ursache dafür war, dass in der POM-Datei der Scoop "Compile" zur Abhängigkeit von TestNG war. Alles, was ich tun musste, war die Scoop-Einstellung für die TestNG-Abhängigkeit zu löschen.

Es ist Sache der Ausnahme von der Eclipse TestNG Plugin, weil das Plugin zu tun hat nicht das TestNG Glas in dem Classpath, wenn er ausgeführt wird (es ist nach der Übersetzungsphase läuft)

Vorher:

<dependency> 
    <groupId>org.testng</groupId> 
    <artifactId>testng</artifactId> 
    <version>6.11</version> 
    <scope>compile</scope> 
</dependency> 

nach:

<dependency> 
    <groupId>org.testng</groupId> 
    <artifactId>testng</artifactId> 
    <version>6.11</version> 
</dependency> 
0

Mein testng Glas war auf classpath und testng Plugin auch für eclipse installiert wurde. Durch die Umwandlung meines Projekts in das Maven-Projekt in Eclipse wurde das Problem gelöst.

Verwandte Themen