私はコマンドライン経由でtestngを実行しようとしていますが、クラスパスには次のものがあります:
testng
jar、コンパイル済みテストケースファイルのjar、およびその他の必要なjar。testng.xml
は、階層内の適切なクラスを指します。Testngは代わりにスローされません:
[TestNG] [ERROR] Cannot find class in classpath: (name of testcase file)
前に同じ問題に遭遇したので、追加しました。
classpath
で問題を解決しました。しかし、今回はそれを解決するようには見えませんでした。回避策はありますか?前もって感謝します。
この問題が発生したばかりで、コマンドラインからテストを正常に実行できたため、EclipseのTestNGプラグインのバグであると確信しています。
私や他の人のために働いているように見える修正は、あなたのプロジェクトをきれいにすることです(Project
→Clean
)。 1人がプラグイン全体を再インストールする必要がありました。
パッケージ名がFabFurnishPackageでクラス名が登録の場合、xmlのコードは次のようになります。
<classes>
<class name="FabFurnishPackage.registration">
</classes>
[TestNG] [エラー]クラスパスでクラスが見つかりません:登録の問題が修正されました...
Eclipse> Project> Cleanを実行し、テストケースを再度実行します。動作するはずです。
バックグラウンドで行われるのは、プロジェクトディレクトリでmvn Eclipse:cleanを呼び出すことです。これにより、.projectファイルと.classpathファイルが削除され、mvn Eclipse:eclipseも実行できます。これにより、.projectファイルと.classpathファイルが再生成されます。したがって、クラスパスに目的のクラスを追加します。
私は同じ問題に直面しており、私が試したのは以下の通りです。
pom.xml
を右クリックしてきれいにします)これで問題は解決しました。
pomに追加:
<build>
<sourceDirectory>${basedir}/src</sourceDirectory>
<testSourceDirectory>${basedir}/test</testSourceDirectory>
(...)
<plugins>
(...)
</plugins>
</build>
コマンドプロンプトからtestng.xmlファイルのコマンドを実行する前に、欠落している場合は以下を確認してください
set CLASSPATH
に移動した後、testng jarファイルの場所、Seleniumサーバーjarファイルの場所(Selenium webdriverで作業している場合)、プロジェクトのすべての.classファイルを含むプロジェクトのbinフォルダーの場所を含めます。set CLASSPATH=C:\Selenium\testng-5.8-jdk15.jar;C:\Selenium\selenium-server-standalone-2.31.0.jar;C:\SeleniumTests\YourProject\bin
Java org.testng.TestNG testng.xml.
を実行します私は同じ状況にありましたが、上記のことがうまくいきました。
suite.xmlに.Java拡張子が付いていないことを確認してください
例:
<test name="Test C1">
<classes>
<class name="com.taxi.suiteC.TestCase_C1" ></class>
</classes>
</test>
上記のいずれの回答も機能しない場合は、IDEでテストを実行し、クラスパスを取得してコマンドで使用できます。例:Intellij IDEAを使用している場合、コンソールの上部にあります(下のスクリーンショット)。
強調表示された部分をクリックすると、展開され、完全なクラスパスが表示されます。
フォルダ内の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>
TestNG.xmlファイルでクラス/パッケージを指定したことを確認してください。
<test name="test1" preserve-order="false">
<classes>
<class name="ABC"/>
</classes>
</test>
テストクラスからjarファイルを作成し、クラスパスに追加する必要がありました。以前は、テストクラスファイルをクラスパスに追加すると、上記のエラーが発生しました。そこで、jarを作成してクラスパスに追加しました。
例えば
Java -cp "my_jars/*" org.testng.TestNG testing.xml
TestNG出力パス(プロジェクトプロパティ-> TestNG->出力ディレクトリ)を変更した後、それは私のために働いた。
Eclipse->右クリックProject-> ビルドパス-> Configure-> Javaビルドパス。
ライブラリを追加-> JRE lib.
システムで使用している最新のJava libを追加し、他の古いJREライブラリを削除して保存します。
Eclipse(Mars)IDEでプロジェクトを開いている場合:Eclipseでプロジェクトを右クリックし、TestNGをクリックします「TestNGに変換」をクリックします
これにより、新しいtestng.xmlファイルが作成され、既存のファイルを上書きするよう求められます(!!!警告。これにより、以前のtestng.xmlが消去されます!!!)。はいをクリックします。
Mavenテストビルドとして実行します。
私の場合、パッケージ構造は適切ではなく、フォルダーやサブフォルダーのようなものでした。そのプロジェクトを削除し、それぞれのjreを変更して再度インポートしました。その後、それは私のために働いた。例えばフォルダー構造-TestProject -TestSuite1パッケージ構造-TestProject.TestSuite1
プロジェクトを右クリック-> Mavenに移動->プロジェクトを更新
これは他に何もできなかったときに私の問題を修正しました
Testng.xmlファイルを実行しようとしたときに、同様の問題に直面しました。
修正するには、クラスファイルをデフォルトパッケージから他のパッケージに移動する必要があります。すなわち、新しいpkgを作成し、そこにクラスファイルを配置します
私は同じ問題に遭遇しました。テストを実行するたびに、クラスパスにクラスが見つからないと言っていました。私はtestng.xmlファイルを修正し、プロジェクトをクリーンアップし、答えがここで言ったほとんどすべてを試みましたが、どれもうまくいきませんでした。最後に、ビルドパスで参照されているライブラリをチェックしましたが、34個の無効なライブラリがあり、jarファイルを取得したパスからフォルダの1つを名前変更したことがわかりました。パスを修正し、テストは正常に実行されました。
そのため、この問題を修正する他の方法を試す前に、参照されたjarファイルにエラーがあるかどうかを確認することは有益です。
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 -->
エラーを回避するには
クラスパスにクラスが見つかりません:(テストケースファイルの名前)
ランナークラスとテストクラスを1か所で保持する必要があります。 srcとtestフォルダーを意味します。
クラス階層を確認してください。パッケージがクラスにない場合、このエラーが発生します。そのため、パッケージを選択して新しいテストクラスを作成してください。
私は同じ問題の解決策に直面していました、testngファイルを確認する必要があります、この場合パッケージの下に作成されたクラスはTest NGを通じて見つかりません以下の手順を実行するだけで、プロジェクトをTest NGに変換し、新しいtestNGファイルで上書き/上書きします。
この場合もこのTestNGを実行します。
私も同じ問題に直面していました。私はクラスパスを別の方法で設定しようとしましたが、それは私にとってはうまくいきます:
set classpath="projectpath"\bin;"projectpath"\lib\*
押す Enter
Java org.testng.TestNG testng.xml
押す Enter 再び
これがうまくいくことを願っています!
同じエラーが発生していました-クラスパスでクラスが見つかりません:
解決策:次の間違いを犯しました。
この問題が発生したのは、実行構成のテストのスキップオプションがチェックされていたためです。それをチェック解除してビルドし、testNgを実行して動作しました。
この問題は、ビルドエラーが原因で発生しています。 1.プロジェクトのクリーン-問題が解決しない場合2. mavenプロジェクトの更新-それでも解決しない場合3.ビルドパスに移動(プロジェクト->プロパティ-> Javaビルドパス)を右クリック)ライブラリファイルを確認します。エラーが表示された場合は、指定された場所に見つからないファイルを追加して解決します。
私は同じ問題に直面しています、多くのアプローチの後、その問題を修正するための3番目の解決策を見つけました
TestNGクラスの名前を変更し、テストスイートのxmlファイルで名前が変更されていない場合、このエラーが発生します。私もxmlファイルで修正し、それは私のために働いた。
上記のすべての提案を試みましたが、私の場合はうまくいきませんでした。プロジェクトのビルドパスにエラーがあることがわかります(依存するjarの1つが見つかりません)。そのエラーを修正した後、testngはEclipseで再び動作します。
デフォルトのパッケージと追加という名前のクラスを使用してプロジェクトをtestng.xmlに変換したとき。それは次のように変換されました:
<classes>
<class name=".addition"/>
</classes>
クラスをロードできないというエラーをスローしていました。削除する場合。追加する前に、コードは正常に動作します。したがって、デフォルトのパッケージには注意してください。