私が作成したJava GUIテストベッドからSelenium WebDriverとtestNGを使って並列テストを実行しようとしています。テストベッドは、testNG環境とは別のクラスにあります。 XMLファイルから並列テストを実行すると、テストは正常に実行されます。 GUIを起動し、XMLファイルを呼び出すために割り当てられたボタンをクリックしようとすると、「スレッドの例外」AWT-EventQueue-0「java.lang.NoClassDefFoundError:org/testng/TestNG」が表示されます。私が調査した答えに基づいて、これはクラスパスの問題であるようです。必要なすべてのtestNG jarファイルが構築パスにあることを確認しました。別のクラスのActionperformed/jbuttonからtestng.xmlファイルを呼び出すときにNoClassDefFoundErrorを解決するにはどうすればよいですか?
これは、xmlファイルを実行する必要のあるjbuttonに対して実行されるコードです。
public static void runXML() {
// Create object of TestNG Class
TestNG runner=new TestNG();
// Create a list of String
List<String> suitefiles=new ArrayList<String>();
// Add xml file which you have to execute
suitefiles.add("C:\\Users\\AFSW-NE\\git\\AfsTestBed\\testng.xml");
// now set xml file for execution
runner.setTestSuites(suitefiles);
// finally execute the runner using run method
runner.run();
これは、ボタンを押したときに呼び出されるメソッドです。デバッグの際、runXML()メソッドが問題になるようです。 runXML()がNoClassDefFoundErrorを投げた原因はClassNotFoundException "org.testng.TestNG"です。だから私はそれがクラスパスと何かでなければならないと信じていますが、私は何がわかりません。 pomファイルの依存関係はそこにあり、jarファイルもそこにあります。
私はそれを試みましたが、うまくいきませんでした。私はそれが単なる日食の誤りだと思う。 IntelliJをインストールしてプロジェクトをインポートしたところ、正常に動作しました。そのため、日食で何らかの通信エラーが発生します。 – wolfschoolwitcher