web-dev-qa-db-ja.com

TestNGエラークラスパスでクラスが見つかりません

私はコマンドライン経由でtestngを実行しようとしていますが、クラスパスには次のものがあります:

  • testng jar、コンパイル済みテストケースファイルのjar、およびその他の必要なjar。
  • testng.xmlは、階層内の適切なクラスを指します。

Testngは代わりにスローされません:

[TestNG] [ERROR]  Cannot find class in classpath: (name of testcase file)

前に同じ問題に遭遇したので、追加しました。

classpathで問題を解決しました。しかし、今回はそれを解決するようには見えませんでした。回避策はありますか?前もって感謝します。

24
paragm

この問題が発生したばかりで、コマンドラインからテストを正常に実行できたため、EclipseのTestNGプラグインのバグであると確信しています。

私や他の人のために働いているように見える修正は、あなたのプロジェクトをきれいにすることです(ProjectClean)。 1人がプラグイン全体を再インストールする必要がありました。

36
Baer

パッケージ名がFabFurnishPackageでクラス名が登録の場合、xmlのコードは次のようになります。

<classes>
<class name="FabFurnishPackage.registration">
</classes>

[TestNG] [エラー]クラスパスでクラスが見つかりません:登録の問題が修正されました...

17
Hema

Eclipse> Project> Cleanを実行し、テストケースを再度実行します。動作するはずです。

バックグラウンドで行われるのは、プロジェクトディレクトリでmvn Eclipse:cleanを呼び出すことです。これにより、.projectファイルと.classpathファイルが削除され、mvn Eclipse:eclipseも実行できます。これにより、.projectファイルと.classpathファイルが再生成されます。したがって、クラスパスに目的のクラスを追加します。

8
pseudoCoder

私は同じ問題に直面しており、私が試したのは以下の通りです。

  1. プロジェクトをきれいにします(pom.xmlを右クリックしてきれいにします)
  2. そして、Mavenプロジェクトを更新します(プロジェクト> Maven> Mavenプロジェクトの更新)

これで問題は解決しました。

6
Shri_Automation

pomに追加:

        <build>
            <sourceDirectory>${basedir}/src</sourceDirectory>
            <testSourceDirectory>${basedir}/test</testSourceDirectory>
             (...)
            <plugins>
                (...)
            </plugins>
        </build>
4

コマンドプロンプトからtestng.xmlファイルのコマンドを実行する前に、欠落している場合は以下を確認してください

  1. コマンドプロンプトで、testng.xmlファイルを配置したフォルダーに移動していることを確認します。
  2. set CLASSPATHに移動した後、testng jarファイルの場所、Seleniumサーバーjarファイルの場所(Selenium webdriverで作業している場合)、プロジェクトのすべての.classファイルを含むプロジェクトのbinフォルダーの場所を含めます。
    e.g。、set CLASSPATH=C:\Selenium\testng-5.8-jdk15.jar;C:\Selenium\selenium-server-standalone-2.31.0.jar;C:\SeleniumTests\YourProject\bin
  3. コマンドJava org.testng.TestNG testng.xml.を実行します

私は同じ状況にありましたが、上記のことがうまくいきました。

4
priti

suite.xmlに.Java拡張子が付いていないことを確認してください

例:

<test name="Test C1">
    <classes>
        <class name="com.taxi.suiteC.TestCase_C1" ></class>  
    </classes>
</test>
2
Anand Palabhavi

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

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

フォルダ内のjarへの参照を削除する必要があります。JetBrains\ IntelliJ IDEA Community Edition[〜#〜] version [〜#〜]

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

プロジェクトがMavenプロジェクトの場合、maven surefireプラグインを追加し、testngスイートのXMLファイルパスを指定し、プロジェクトディレクトリに移動して、コマンドを実行できます。mvn clean install test

            <plugin>
                <groupId>org.Apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.12</version>
                <configuration>
                    <suiteXmlFiles>
                        <suiteXmlFile>config/testrun_config.xml</suiteXmlFile>
                    </suiteXmlFiles>
                </configuration>
            </plugin>
1
Tilak

TestNG.xmlファイルでクラス/パッケージを指定したことを確認してください。

<test name="test1" preserve-order="false">
    <classes>
        <class name="ABC"/>
    </classes>
</test>
1
Pratik Patel

テストクラスからjarファイルを作成し、クラスパスに追加する必要がありました。以前は、テストクラスファイルをクラスパスに追加すると、上記のエラーが発生しました。そこで、jarを作成してクラスパスに追加しました。

例えば

Java -cp "my_jars/*" org.testng.TestNG testing.xml
0
Ishan Liyanage

TestNG出力パス(プロジェクトプロパティ-> TestNG->出力ディレクトリ)を変更した後、それは私のために働いた。

0
Prashant

Eclipse->右クリックProject-> ビルドパス-> Configure-> Javaビルドパス

ライブラリを追加-> JRE lib.

システムで使用している最新のJava libを追加し、他の古いJREライブラリを削除して保存します。

0
Ashutosh Dobhal

Eclipse(Mars)IDEでプロジェクトを開いている場合:Eclipseでプロジェクトを右クリックし、TestNGをクリックします「TestNGに変換」をクリックします

これにより、新しいtestng.xmlファイルが作成され、既存のファイルを上書きするよう求められます(!!!警告。これにより、以前のtestng.xmlが消去されます!!!)。はいをクリックします。

Mavenテストビルドとして実行します。

0
Uma Senthil

私の場合、パッケージ構造は適切ではなく、フォルダーやサブフォルダーのようなものでした。そのプロジェクトを削除し、それぞれのjreを変更して再度インポートしました。その後、それは私のために働いた。例えばフォルダー構造-TestProject -TestSuite1パッケージ構造-TestProject.TestSuite1

0
Sunita Yadav

IntelliJを使用して同様の問題に直面していましたが、他の誰かに役立つかもしれない場合、それを修正したのはUse classpath of moduleフィールド。パッケージ名を表示するものとして使用します。

enter image description here

0

プロジェクトを右クリック-> Mavenに移動->プロジェクトを更新

これは他に何もできなかったときに私の問題を修正しました

0
Sachin Singh

Testng.xmlファイルを実行しようとしたときに、同様の問題に直面しました。

修正するには、クラスファイルをデフォルトパッケージから他のパッケージに移動する必要があります。すなわち、新しいpkgを作成し、そこにクラスファイルを配置します

0
Steve

私は同じ問題に遭遇しました。テストを実行するたびに、クラスパスにクラスが見つからないと言っていました。私はtestng.xmlファイルを修正し、プロジェクトをクリーンアップし、答えがここで言ったほとんどすべてを試みましたが、どれもうまくいきませんでした。最後に、ビルドパスで参照されているライブラリをチェックしましたが、34個の無効なライブラリがあり、jarファイルを取得したパスからフォルダの1つを名前変更したことがわかりました。パスを修正し、テストは正常に実行されました。

そのため、この問題を修正する他の方法を試す前に、参照されたjarファイルにエラーがあるかどうかを確認することは有益です。

0
Qaddaffi

mavenを使用しているときに同じ問題が発生しました

働いた解決策は、testNGファイルのクラスの名前が実際のクラス名と異なっていた

クラス名を変更したため、testngファイルは更新されませんでした。

したがって、testNGファイルのclassNameが実際のclassNameと一致することを確認してください

RestNGでRestAssuredTestがRestAssuredestとして誤って記述された

この問題の理由の1つ

<?xml version="1.0" encoding="UTF-8"?>

 <suite name="Suite">
   <test name="Test">
<classes>
  <class name="com.mycompany.app.AppTest"/>
  <class name="com.mycompany.app.RestAssuredTest"/>
 <class name="com.mycompany.app.appiumTests"/>
</classes>
</test> <!-- Test -->
</suite> <!-- Suite -->
0
Gaurav khurana

エラーを回避するには

クラスパスにクラスが見つかりません:(テストケースファイルの名前)

ランナークラスとテストクラスを1か所で保持する必要があります。 srcとtestフォルダーを意味します。

0
Seploid

クラス階層を確認してください。パッケージがクラスにない場合、このエラーが発生します。そのため、パッケージを選択して新しいテストクラスを作成してください。

0
Mano

私は同じ問題の解決策に直面していました、testngファイルを確認する必要があります、この場合パッケージの下に作成されたクラスはTest NGを通じて見つかりません以下の手順を実行するだけで、プロジェクトをTest NGに変換し、新しいtestNGファイルで上書き/上書きします。

この場合もこのTestNGを実行します。

0
nilesh

私も同じ問題に直面していました。私はクラスパスを別の方法で設定しようとしましたが、それは私にとってはうまくいきます:

set classpath="projectpath"\bin;"projectpath"\lib\*     

押す Enter

Java org.testng.TestNG testng.xml   

押す Enter 再び

これがうまくいくことを願っています!

0
Rahul

同じエラーが発生していました-クラスパスでクラスが見つかりません:

解決策:次の間違いを犯しました。

  1. 私のクラスはどのパッケージの下にもありませんでした。そのため、パッケージを作成し、そのパッケージの下にクラスを作成しました。
  2. Xmlファイルに絶対パスを記載していませんでした。例。だから私も修正しました。
  3. 次に、xmlファイルを右クリックし、TestNGとしてプログラムを実行しました。
0
Abhineet Mishra

この問題が発生したのは、実行構成のテストのスキップオプションがチェックされていたためです。それをチェック解除してビルドし、testNgを実行して動作しました。

0
Jobin Mathew

この問題は、ビルドエラーが原因で発生しています。 1.プロジェクトのクリーン-問題が解決しない場合2. mavenプロジェクトの更新-それでも解決しない場合3.ビルドパスに移動(プロジェクト->プロパティ-> Javaビルドパス)を右クリック)ライブラリファイルを確認します。エラーが表示された場合は、指定された場所に見つからないファイルを追加して解決します。

私は同じ問題に直面しています、多くのアプローチの後、その問題を修正するための3番目の解決策を見つけました

0
Neeraj Agarwal

TestNGクラスの名前を変更し、テストスイートのxmlファイルで名前が変更されていない場合、このエラーが発生します。私もxmlファイルで修正し、それは私のために働いた。

0
ANIL KUMAR

上記のすべての提案を試みましたが、私の場合はうまくいきませんでした。プロジェクトのビルドパスにエラーがあることがわかります(依存するjarの1つが見つかりません)。そのエラーを修正した後、testngはEclipseで再び動作します。

0
sofian

デフォルトのパッケージと追加という名前のクラスを使用してプロジェクトをtestng.xmlに変換したとき。それは次のように変換されました:

<classes>
      <class name=".addition"/>
</classes>

クラスをロードできないというエラーをスローしていました。削除する場合。追加する前に、コードは正常に動作します。したがって、デフォルトのパッケージには注意してください。

0