2016-06-26 8 views
0

testNG로 java selendroid 코드를 실행하면 "Java 예외가 발생했습니다"라는 오류 메시지가 나타납니다. 아래의 예외 -TestNG 사용 중 오류 발생

TestNG를하고 selendroid에 익숙하지
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); 



    } 

    } 

그렇게 상세하게 솔루션을 제공하십시오 -

다음
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 

는 selendroid 자바 코드입니다.

답변

1

클래스 경로에 testng jar가없는 것 같습니다. 그냥 추가하십시오.

0

나는 같은 문제가있어서 근본 원인이 POM 파일에서 TestNG의 종속성에 "컴파일"되었다는 것을 발견했습니다. 내가해야만하는 것은 TestNG 의존성에 대한 특종 설정을 지우는 것뿐입니다.

그것은 이클립스 TestNG를 플러그인에서 예외에 원인이 있기 때문에 플러그인 할 수는

전에 (는 컴파일 단계 이후에 실행중인)를 실행하지 않을 때 클래스 패스에서 TestNG를 항아리가 있습니다

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

:

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

내 TestNG를 항아리 클래스 경로에 있던 및 TestNG를 플러그인은 이클립스가 설치되었다. Eclipse에서 Maven 프로젝트로 프로젝트를 변환하면 문제가 해결됩니다.