2013-07-15 12 views
8
から実行する方法

私はTestNGプロジェクトを持っています。メインクラスはありません。現在、Run As TestNGのように実行されています。スタンドアロンのTestNGプロジェクトをjar/bat/

実行可能なjarまたはjarとしてエクスポートして、コマンドラインからコマンドを実行してテストケースが実行されるようにしたいとします。

これで私を助けてくれますか?または実行可能な形式でコードを配信するための他の方法を提案する...

私はantまたはmavenを使用していません。

ありがとうございました

+0

解決策は見つかりましたか?私もここで立ち往生しています。 – Ramnath

+0

「Eclipse」を使用していますか?テストを実行する「起動」ファイルをエクスポートすることは可能ですが、実行する必要があるすべてのクラスをリストする単一の「スイート」ファイルが必要になります。コマンドラインから 'launch'ファイルを実行することができます。 – radimpe

答えて

4

私はグーグルのビットの後に解決策を見つけたようです。これはEclipse(Juno)でうまく動作します。

「Tests.java」という名前のTestNGファイルがあります。あなたが正しく指摘したように、メインメソッドを持つクラスはありません。 したがって、同じパッケージの下に新しいJavaクラスファイルを作成する必要があります。それを 'MainOne.java'と名づけましょう。これにはmainメソッドを持つクラスがあります。

import com.beust.testng.TestNG; 

public class MainOne { 

    public static void main(String[] args) { 
     TestNG testng = new TestNG(); 
     Class[] classes = new Class[]{Tests.class}; 
     testng.setTestClasses(classes); 
     testng.run(); 

    } 

は、Javaアプリケーションとして 'MainOne.java' を実行します。ここでは

はあなたが必要とするコードです。次に、パッケージを右クリックします。 - > Export - > Runnable Jar [MainOneを起動設定として選択] - > [完了]を選択します。

+0

Ah、_rightパッケージをクリックし、menu_でこれを選んでください。不特定のエディタでしか動作しないより汎用的なソリューションを提供するように気をつけてください。 「Eclipseのこのバージョン」や「IntelliJ 13」、「Netbeans 8を使用」、「Inside JDeveloper 12」などの特定のエディターやバージョンに限定することもできます。そうでないと貴重な情報が得られません。これらのメニューは現在のエディタでは表示されません。おそらく、過去にはそこにいたが、動いたかもしれない。または、あなたのメニューが別のエディタ用であったかもしれません。 – Bryan

+0

IDEの名前とバージョンを含むように私の回答を編集しました。私は普遍的な解決策はありません。 – Ramnath

1

私は現在、TestNGの並列性が恩恵を受けるためには、Eclipse IDE内からではなくコマンドラインからJavaクラスを実行するときに、org.testngのjarファイルで静的メインメソッドを使用する必要があると理解しています。

問題はclasspathになり、javaがどのようにすべてのJARファイルを見つけるかを定義します。私はhttp://javarevisited.blogspot.com/2012/10/5-ways-to-add-multiple-jar-to-classpath-java.htmlが*ワイルドカードが記述されているので最も有用であることがわかりました.Selenum + TestNG +カスタムテストスイートに必要なすべてのjarファイルを参照する必要がある場合には非常に役立ちます。

これは現在のWindows BATファイルであり、動作します。 ADV.jarには私のカスタムクラスが含まれていますが、メインメソッドはありません。

setlocal 
set r=d:\Apps\Selenium\ 
cd /d %~dp0 
java -classpath %r%Downloaded\*;%r%MyCompany\ADV.jar; org.testng.TestNG .\testng-customsuite-adv.xml 
pause 

公共の場所からダウンロードしたすべてのJARファイルは、私のd:\ Apps \ Selenium \ Downloadedフォルダに入っています。カスタムADV.jarファイルをd:\ Apps \ Selenium \ MyCompanyに入れて、別々にしておきます。

エクスポートJarファイルを使用してEclipseからADV.jarファイルを作成し、欠落しているメインメソッドに関する警告を無視しました。

脇:このhttps://stackoverflow.com/a/16879386/424855は非常に興味深いですが、私はその作業をどのように行うかを理解できませんでした。

0

これを行うより良い方法があります。

public static void main(String[] args) { 
    TestListenerAdapter tla = new TestListenerAdapter(); 
    TestNG testng = new TestNG(); 
    testng.setTestClasses(new Class[] { test_start.class }); 
    testng.addListener(tla); 
    testng.run(); 
} 
ここ

公式TestNGのWebサイトから参照URL次のとおりです。

あなたは次のように実行されるすべてのテストクラスのリストを持っていますmainメソッドを作成することができます。

MainOne.javaをJavaアプリケーションとして実行します。次に、パッケージを右クリック - >エクスポート - > Runnable Jar [起動設定としてMainOneを選択] - > [完了]をクリックします。