2017-04-03 6 views
0

저는 Jenkins를 통해 하룻밤 사이에 실행되도록 의도 된 Maven과 TestNG를 사용하여 여러 셀레늄 테스트를 작성했습니다. 그러나 QA 팀이 Jenkins와 독립적으로 특정 매개 변수 (sku 등)를 사용하여 실행할 수있는 몇 가지 구체적인 테스트를 작성해야합니다. 현재 나의 자동화 테스트는 maven으로 실행되지만 testing 명령을 사용하여 명령 행에서 어떻게 실행할 수 있습니까? 따라서 명령 행 옵션으로 특정 파일을 실행하기 만합니다. 나는이 시도 :명령 줄에서 Maven/TestNG 프로젝트를 실행하고 명령 줄에서 DIFFERENT xml을 실행 하시겠습니까?

java -cp "/Users/kroe761/.m2/repository/org/testng/testng/6.8/testng-6.8.jar" org.testng.TestNG testng2.xml 

을하지만 (나는 전혀 이해하지 못하는)이 오류가 발생했습니다

그 더 나은 것 mvn test이 할 수있는 방법이 있다면

Error: A JNI error has occurred, please check your installation and try again 
Exception in thread "main" java.lang.NoClassDefFoundError: com/beust/jcommander/ParameterException 
    at java.lang.Class.getDeclaredMethods0(Native Method) 
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2701) 
    at java.lang.Class.privateGetMethodRecursive(Class.java:3048) 
    at java.lang.Class.getMethod0(Class.java:3018) 
    at java.lang.Class.getMethod(Class.java:1784) 
    at sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:544) 
    at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:526) 
Caused by: java.lang.ClassNotFoundException: com.beust.jcommander.ParameterException 
    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) 
    ... 7 more 
, 젠킨스의 일을 너무 많이 수정하고 싶지는 않습니다.

답변

3

당신은

here에 설명 된 것처럼 명령 줄에서 실행할 때 당신이 다음과 같아야합니다, 확실한 플러그인을 사용하여 테스트를 실행하는 suiteXmlFiles의 PARAMS 케이스를 제공 할 수

슈퍼 도움이
mvn test -Dsurefire.suiteXmlFiles=suite_location/suite.xml 
+0

. 나는 그런 식으로하고 싶었지만, 코드에서 사용할 수있는 명령 줄 인수를 추가 할 수있는 방법이 있습니까? 감사! – kroe761

+0

아, 알겠습니다. '-Dsku = 123456' ->'System.out.println (System.getProperty ("sku"));'. 도와 주셔서 정말로 고맙습니다! – kroe761