テストスイートを実行しようとすると、この例外が発生します。ここではMavenプロジェクトを使用しており、更新、クリーニング、testNGの再インストールが完了し、Mavenプロジェクトをインポートしましたが、同じ例外が発生しています。ここに欠けている方法を提案してください。
エラーコンソール:
org.testng.TestNGException:
Cannot find class in classpath: EmpClass
at org.testng.xml.XmlClass.loadClass(XmlClass.Java:81)
at org.testng.xml.XmlClass.init(XmlClass.Java:73)
at org.testng.xml.XmlClass.<init>(XmlClass.Java:59)
at org.testng.xml.TestNGContentHandler.startElement(TestNGContentHandler.Java:543)
at com.Sun.org.Apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.Java:509)
at com.Sun.org.Apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.Java:182)
at com.Sun.org.Apache.xerces.internal.impl.dtd.XMLDTDValidator.emptyElement(XMLDTDValidator.Java:766)
at com.Sun.org.Apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.Java:1350)
at com.Sun.org.Apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.Java:2778)
at com.Sun.org.Apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.Java:606)
at com.Sun.org.Apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.Java:510)
at com.Sun.org.Apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.Java:848)
at com.Sun.org.Apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.Java:777)
at com.Sun.org.Apache.xerces.internal.parsers.XMLParser.parse(XMLParser.Java:141)
at com.Sun.org.Apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.Java:1213)
at com.Sun.org.Apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.Java:649)
at com.Sun.org.Apache.xerces.internal.jaxp.SAXParserImpl.parse(SAXParserImpl.Java:333)
at javax.xml.parsers.SAXParser.parse(SAXParser.Java:195)
at org.testng.xml.XMLParser.parse(XMLParser.Java:39)
at org.testng.xml.SuiteXmlParser.parse(SuiteXmlParser.Java:17)
at org.testng.xml.SuiteXmlParser.parse(SuiteXmlParser.Java:10)
at org.testng.xml.Parser.parse(Parser.Java:168)
at org.testng.TestNG.initializeSuitesAndJarFile(TestNG.Java:311)
at org.testng.remote.RemoteTestNG.run(RemoteTestNG.Java:88)
at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.Java:204)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.Java:175)
私も同じ例外を受け取りました:
次の手順を試しました。
Eclipse> Project> Cleanで。 (例外は残った)
別のプロジェクトを実行しました(testng.xmlは正常に実行されました)
別のプロジェクトを実行した後、例外を取得しているプロジェクトを実行しましたが、幸いなことに、エラーなしで機能しました。
テストランナーxmlファイルを編集する必要があります。この例を参照してください。
<test name="Employees Test">
<classes>
<class name="packagename.classname">
</class>
</classes>
</test>
<class name="packagename.classname">
行には、テストパッケージ名を入力してから、実行するクラスの名前を入力する必要があります。
よろしくお願いします。
私はtestngプロジェクトでMavenをインポートする際に同様の問題に直面しました。これは、TestNgプロジェクトに再度変換することで解決しました。
eclipseプロジェクトを右クリック> TestNG> TestNGに変換
既存のtestng.xml
ファイルを新しく作成されたファイルに置き換えます。 mvn install
を使用してMavenプロジェクトをクリーンアップおよび更新します
注:testng.xml
のバックアップを取ります
Project >> Clean and Maven >> Update Projectは私のために働いた
[プロジェクト]、[ビルドパス]、[ビルドパスの構成]、[ライブラリ]、[エラーライブラリの削除]の順に選択します。
プロジェクトを更新し、プログラムを再実行した後。
問題に関する私の2セント:私は同じ問題を経験していましたが、私の道の一部はキリル文字でした。そのため、プロジェクトへのパスで特殊文字を確認してください。これを削除すると、問題は修正されました
Selenium 3.11.xx依存関係を使用していたときに同じ問題が発生しましたが、Selenium 3.4.x依存関係を使用すると問題は解決しました。
TestNGバージョン6.14.2でも同じ問題が発生しました
ただし、これは私の側の愚かな間違いによるもので、maven、testng、Eclipseにはまったく問題はありません。私がやっていたことは-
最初にpackageを作成してから、そのパッケージの下に新しいTestNGクラスを作成する必要があります。
Testng.xmlファイルで、「。」を削除しますパッケージを使用していない場合、タグ「」クラス名から。
IntelliJ IDEAで1台のPCから別のPCにプロジェクトをインポートしたときに、同じ問題が発生しました。
以下のソリューションが私のために働いた:
私の意見では、srcにtest/Java /フォルダーがある場合、ビルドパスの場所はtarget/test-classesのようになります。
Srcにmain/Java /フォルダーがある場合、ビルドパス内の場所はtarget/classesのようになります。
私にとって問題は非常に奇妙でした。
Eclipseプロジェクトのルートにtestng.xmlファイルがあります。 Eclipseでファイルを変更しても、ディレクトリ内のtestng.xmlファイルは変更されませんでした。
フォルダーのコピーがEclipseワークスペースに作成されたことが判明しました。
これが誰かを助けることを願っています
私にとって問題は、POMでのコンパイルからテストを除外したためです。私のpom.xmlは次のようになりました。
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<testExcludes>
<exclude>com/mycompany/app/AppTest.Java</exclude>
</testExcludes>
</configuration>
</plugin>
<exclude>
を削除した後、AppTest.Java
でテストを再度実行できました。
私もこの問題を抱えていました。 IntelliJ IDEAを使用しています。設定ファイルにsrc/main/Java
を、テストファイルにsrc/test/Java
を使用していました。
このtestNGにより、クラスパスが見つかりませんでした。このエラーが発生しないようにするには、すべてのファイルをsrc/main/Java
からsrc/test/Java
に、またはその逆に移動する必要があります。
IDEが再び機能するようになりました。解決策は非常に面白く、再インストールでさえ、IDEを削除してもWindowsで修正されません。その場合に必要なことは、testNG実行構成に移動し、それらをすべて削除することです。これは、Windows OSのTestNG XMLクラスパスエラー用です。 Spring Tools Suite 3.6.4を使用しています。
すべての構成を削除し、プロジェクトがビルドできることを確認してください。問題がなければ、テストをすぐに実行する必要があります。
よろしく-アンソニー・トーリー
この問題は、TestNG.classパッケージを次のようにOnlineStoreパッケージに追加することで解決できます。
私は同様の問題があり、プロジェクトにはいくつかのビルドエラーがありました。プロジェクトに対してSudo -R 777を実行し、プロジェクトをクリーンアップしました。その後、うまくいきました。
それが役に立てば幸い。
私のために働いたものを共有させてください:
「mvn clean」を実行すると、古いコンパイル済みクラスがクリーニングされます。「プロジェクトdirectroy->ターゲット」の場所に移動してください。MVNがコンパイルされたアーティファクトを配置するため、このフォルダーがクリーニングされます。
既にMAVENプロジェクトであるため、プロジェクトフォルダーに移動し、コマンドプロンプトで開きます。そして、「mvn clean」を発行してから「mvn test」->「mvn test」コマンドを実行すると、コンパイルされたすべてのファイルが適切なフォルダーに配置され、TestNGまたはMAVEN自体でテストを実行できます。
Envパスに「M2_HOME」または「MAVEN_HOME」を設定していることを確認してください。「MAVEN_HOME」が機能しない場合があるため、「M2_HOME」も追加してください(この設定のためにGoogleを使用)
上記の提案は私のために働いたので、私は共有したい、幸運
今日、私は上記の同じ問題に出会いました。 ** Eclipseでクラスパスを再度設定することで問題が解決しました。
私の場合、MavenプロジェクトをEclipseのデフォルトの既存プロジェクトとしてインポートした後、Mavenプロジェクトとしてインポートしました。
クラスがsrcの下にあることを確認してください。
クラスにパッケージ名を含めます。名前が削除されます。私も同じ問題を抱えていましたが、クラスにパッケージ名を追加するとこの問題が修正されました。
注:以下に示すように、パッケージとともにクラス名を指定する必要があります。
<suite name="testNGLearning">
<test name="simpleTest">
<classes>
<class name="testngTests.TestNGSimpleTest" />
<class name="testngTests.TestMessageUtil" />
</classes>
</test>
</suite>
私にとっては、プロジェクトのMavenビルドにテストのスキップチェックボックス/フラグを追加したということでした
そのため、テストクラスコンパイルされていないで、TestNGによって検出されませんでした
JSFプロジェクトでテストを実行しようとすると、同じエラーが発生しました。
Eclipse IDE(kepler)を使用しています。そこで、「プロジェクト>クリーン」を実行し、同じプロジェクトのテストを再度実行しました。
動いた!
最近までこれに問題はなかった。
今、私はスイートのxmlテストファイルを、テストしていたプロジェクトのルートに移動する必要がありました。
私がテストしているクラスを指す設定があるかもしれませんが、私はそれを見つけていません。