2017-04-03 11 views
0

私はMavenとTestNGを使用してJenkins経由で一晩中実行されることを意図した多数のセレンテストを書いています。しかし、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

関連する問題