私はこれを行う方法を理解しようと何日もグーグルしてきました、もし誰かがこれをやったことがあれば、私は助けに大いに感謝します。
IntelliJで作成した自動化テストプロジェクトがあり、ユーザーがWebアプリケーションを操作するのを自動化します。
その自動テスト(Javaで作成され、SeleniumとTestNGを使用)を実行可能なjarファイルに入れて、他の人がjarファイルをダブルクリックして実行できるようにしたいと思います。
プロジェクト構造->アーティファクト-> +-> Jar->依存関係のあるモジュールから移動してjarファイルを作成しようとするたびに、それを要求するjarが作成されます。
"Could not find or load the main class <package.MainClass> "
次のコマンドで実行しようとすると:
Java -jar MyProject.jar <Manifest Path>
なぜこのエラーが継続的に発生するのか、またはこれを正常に実行する方法があるのか、何か考えはありますか?
また、これが私のpom.xmlです。
<groupId>TestAutomation</groupId>
<artifactId>TestAutomation</artifactId>
<version>1.0-SNAPSHOT</version>
<build>
<plugins>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-Assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>com.test.automation.Executable</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.seleniumhq.Selenium</groupId>
<artifactId>Selenium-server</artifactId>
<version>2.39.0</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.Selenium</groupId>
<artifactId>Selenium-Java</artifactId>
<version>2.40.0</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.1.1</version>
<scope>test</scope>
</dependency>
</dependencies>
私はついにこの問題に遭遇した他の誰かのためにそれを理解しました、これは私がjarファイルを作成して正常に実行する方法です...
Pom.xmlファイルを次のように変更する必要がありました。
<groupId>TestAutomation</groupId>
<artifactId>TestAutomation</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<url>http://maven.Apache.org</url>
<build>
<plugins>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>com.test.automation.Executable</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.seleniumhq.Selenium</groupId>
<artifactId>Selenium-Java</artifactId>
<version>2.40.0</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>6.1.1</version>
<scope>test</scope>
</dependency>
</dependencies>
次に、TestNG関連の呼び出しを使用しないようにメインメソッドを調整する必要がありました。たとえば、メインメソッドに次のようなものを使用することはできませんでした。
TestListenerAdapter tla = new TestListenerAdapter();
TestNG testng = new TestNG();
testng.setTestClasses(new Class[] {WordProfFonts2Set0.class});
testng.addListener(tla);
testng.run();
最後に、適切なjarファイルを作成する手順は次のとおりです。
ノート:
必ずIEまたはChromeドライバーをプロジェクトリソースフォルダーに追加し、コンピューターのハードドライブではなく、コードフォルダーから呼び出してください。たとえば、 、 これを行う:
ファイルfile = new File( "src\test\resources\binarys\IEDriverServer.exe");
これではない:
File file = new File
("C:\\Users\\<Username>\\<Proj Name>\\src\\test\\Java\\src\\
test\\resources\\binaries\\IEDriverServer.exe");
次に、jarがコンピューターに保存されているのと同じフォルダーに、ドライバーを含む同じディレクトリを作成します。
src
TestAutomation.jar
2。 IEを使用している場合は、すべてのゾーンに保護モードが設定されているか、ゾーンのいずれにも設定されていないことを確認してください(IEでは、[インターネットオプション...]> [セキュリティ](タブ)> [保護モードを有効にする]チェックボックスに移動します)