37

コマンド ラインから .java TestNG プロジェクトを実行するにはどうすればよいですか?

私はTestNGのドキュメントを読み、次のことを試してみましたが役に立ちませんでした:

C:\projectfred> java org.testng.TestNG testng.xml 

...私のプロジェクトで次のtestng.xmlファイルを使用:

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >  
<suite name="SuiteAll" verbose="1">
    <test name="TestAll">  
        <packages>  
            <package name="com.project.fred.tests"/>
        </packages>  
    </test>  
</suite>

私が得るエラーはこれです:

Exception in thread "main" java.lang.NoClassDefFoundError: org/testng/TestNG
Caused by: java.lang.ClassNotFoundException: org.testng.TestNG
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: org.testng.TestNG.  Program will exit.

明らかに、コマンド ラインで TestNG を正しく参照していません。これを機能させる方法を知っている人はいますか?

4

13 に答える 13

25

testng.jarクラスパスの下にある必要があります。

試すC:\projectfred> java -cp "path-tojar/testng.jar:path_to_yourtest_classes" org.testng.TestNG testng.xml

アップデート:

Linuxでは、このコマンドを実行しましたが、Windowsでも同様のコマンドが実行されます。

test/bin# java -cp ".:../lib/*" org.testng.TestNG testng.xml

ディレクトリ構造:

/bin - All my test packages are under bin including testng.xml
/src - All source files are under src
/lib - All libraries required for the execution of tests are under this.

すべてのソースをコンパイルすると、binディレクトリに移動します。したがって、クラスパスで、binディレクトリの内容とtestng.xml、ロガーなどのすべてのライブラリをここで指定する必要があります。testng.xmlを使用できるフルパスを指定したくない場合は、testng.xmlをbinフォルダーにコピーします。

 /bin
    -- testng.xml
    -- testclasses
    -- Properties files if any.
 /lib
    -- testng.jar
    -- log4j.jar

Update

フォルダMyProjectに移動し、次のようにjavaコマンドを実行します。-

java -cp ".: C:\Program Files\jbdevstudio4\studio\plugins\*" org.testng.TestNG testng.xml

testng.xmlファイルが下にあると思います。そうでない場合は、ファイルC:\Users\me\workspace\MyProjectのフルパスを指定してくださいtestng.xml

于 2012-08-10T07:46:19.233 に答える
7

からの例を実行できなかった理由を理解しようとして2日後にわかりました

http://www.tutorialspoint.com/testng/testng_environment.htm次のコードが機能しませんでした

C:\TestNG_WORKSPACE>java -cp "C:\TestNG_WORKSPACE" org.testng.TestNG testng.xml

それに対する修正は次のとおりです: 私は次の結論に達しました: 最初に Eclipse をインストールし、TestNG プラグインをダウンロードします。その後、チュートリアルの指示に従って、javac を使用して cmd からテスト クラスを作成およびコンパイルし、testng.xml を追加します。Windows 10 cmd で testng.xml を実行するには、次の行を実行します。

java -cp C:\Users\Lenovo\Desktop\eclipse\plugins\org.testng.eclipse_6.9.12.201607091356\lib\*;C:\Test org.testng.TestNG testng.xml

明確にするために:C:\Users\Lenovo\Desktop\eclipse\plugins\org.testng.eclipse_6.9.12.201607091356\lib\* 上記のパスは、Eclipse用のTESTNGプラグインをインストールしてダウンロードしたjcommander.jarとtestng.jarの場所を表しています。パスは異なる場合があるため、必ず eclipse のインストール場所を開き、プラグインに移動して jcommander.jar を検索してください。次に、その場所をコピーし、その後に * を追加して、必要なすべての .jar を選択します。

C:\Test  

上記のパスは、プロジェクト内の testing.xml の場所を表しています。必要なパスをすべて取得したら、「;」を使用して追加します。

私はあなたたちの何人かに役立ったことを願っています:)

于 2016-09-07T08:49:45.507 に答える
6

大変助かりました。コマンド ラインを使用して TestNG クラスを実行できましたが、最後に次のようにまとめたいと思います。

1) Set the classpath for the testng.jar in the environment variables
(either manually or via command line).

2) Create a new folder "MyTest".

3) Compile all your classes(testNG+java) and put them(.class files )
in a new folder "Mytest\bin".

4) Put your 'testng.xml' and '.properties' files to "Mytest\bin"
again.

5) Put all the .jar files (testng,selenium... etc) in a new folder
"Mytest\lib".

6) Browse to the folder "bin" via command line and run the command
java -cp "..\lib\*;" org.testng.TestNG testng.xml

これにより、testNG ケースが実行されます。

于 2014-12-02T09:44:26.137 に答える
3

Windows の問題で区切り文字として「 ; 」を使用すると解決されました。

java -cp "path of class files; testng jar file path" org.testng.TestNG testng.xml

元:-

java -cp ".\bin;..\common_lib\*;" org.testng.TestNG testng.xml
于 2014-10-03T17:51:56.657 に答える
3

MANIFEST.MF以下の内容のファイルを用意

Manifest-Version: 1.0
Main-Class: org.testng.TestNG

すべてのテスト クラスと依存関係クラスを同じ jar にパックします。たとえば、tests.jar

jar cmf MANIFEST.MF tests.jar -C folder-with-classes/ .

末尾の「.」に注意folder-with-classes/して、適切なフォルダー名またはパスに置き換えてください。

testng.xml以下のような内容で作成

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="Tests" verbose="5">
  <test name="Test1">
    <classes>
      <class name="com.example.yourcompany.qa.Test1"/>
    </classes>
  </test>  
</suite>

com.example.yourcompany.qa.Test1Test クラスへのパスに置き換えます。

テストを実行する

java -jar tests.jar testng.xml
于 2016-09-28T14:42:33.767 に答える
1

Windows で jar ファイルとクラス ファイルのパスを指定するときは、区切り文字としてセミコロンを使用する必要があります。これで問題は解決しました。クラスファイルがC:
の下にあると仮定します。

java -cp ".;C:\testng.jar" org.testng.TestNG testing.xml
于 2014-09-01T10:45:41.340 に答える
1

上記の回答のいずれも機能しない場合は、IDE でテストを実行し、クラス パスを取得してコマンドで使用できます。例: Intellij IDEA を使用している場合は、コンソールの上部にあります (下のスクリーンショット)。 Intellij コンソール

強調表示された部分をクリックすると、展開されて完全なクラス パスが表示されます。

フォルダー内の jar への参照を削除する必要があります: JetBrains\IntelliJ IDEA Community Edition 2019.1.3

java -cp "path_copied" org.testng.TestNG testng.xml

于 2019-06-18T19:44:48.563 に答える