2

testNGメイン メソッドから XML ファイルを呼び出すこのコードがあります。次の方法でコマンドラインからこのクラスファイルを呼び出そうとしています:

java -cp My_Automation.jar com.mycomp.test.sanity.InvokeTestNGTest

ただし、これは次のメッセージで失敗します。

Exception in thread "main" java.lang.NoClassDefFoundError: org/testng/ITestListener

これをEclipseで実行しようとしましたが、これは完全に正常に機能しますが、コマンドラインインターフェイスから呼び出すと失敗します. すべてのテスト JAR はクラスパスに配置されます。矛盾がわかりません。

これが私のコードです:

package com.mycomp.test.sanity;

import java.util.ArrayList;
import java.util.List;
import org.testng.TestNG;
import org.testng.TestListenerAdapter;


public class InvokeTestNGTest {
    public static void main(String[] args) {


        List<String> xmlFileList = new ArrayList();
        xmlFileList.add("ILIO_testNG.xml");
        TestListenerAdapter tla = new TestListenerAdapter();
        TestNG testng = new TestNG();

        testng.setTestSuites(xmlFileList);
        testng.addListener(tla);
        testng.run();

        }

}
4

4 に答える 4

1

すべての jar ファイルが同じディレクトリにある場合を除き、クラスパスで各 jar へのパスを指定する必要があります。また、他の JAR ファイルが欠落していないことを確認する必要があります。

java -cp "/path/to/project/My_automation.jar; /path/to/project/libs/testng-5.5.jar" ... 
于 2013-08-01T18:45:23.887 に答える
0

実行可能なjarではなく、単なるjarとしてエクスポートしたことに気付きました。これは、プロジェクトの依存関係の jar を取得していませんでした。ポインタをありがとう

于 2013-08-06T00:57:18.437 に答える