如何从Selenium/TestNG java文件中使用IntelliJ生成可执行jar文件?
我已经在谷歌上搜索了好几天,试图找出如何做到这一点,如果以前有人这样做过,我将非常感谢您的帮助 我有一个我在IntelliJ中创建的自动化测试项目,它可以自动化用户与Web应用程序的交互 我想将自动测试(用Java创建,使用Selenium和TestNG)放入一个可执行的jar文件中,其他人可以通过双击jar文件来运行该文件 每次我试图通过导航到Project Structure->Artifact->+->jar->From modules with dependenciencies来创建一个jar文件时,它最终会创建一个声明它的jar如何从Selenium/TestNG java文件中使用IntelliJ生成可执行jar文件?,java,selenium,intellij-idea,jar,executable-jar,Java,Selenium,Intellij Idea,Jar,Executable Jar,我已经在谷歌上搜索了好几天,试图找出如何做到这一点,如果以前有人这样做过,我将非常感谢您的帮助 我有一个我在IntelliJ中创建的自动化测试项目,它可以自动化用户与Web应用程序的交互 我想将自动测试(用Java创建,使用Selenium和TestNG)放入一个可执行的jar文件中,其他人可以通过双击jar文件来运行该文件 每次我试图通过导航到Project Structure->Artifact->+->jar->From modules with dependenciencies来创建一个
"Could not find or load the main class <package.MainClass> "
“无法找到或加载主类”
当我尝试使用以下命令运行它时:
java -jar MyProject.jar <Manifest Path>
java-jar MyProject.jar
你知道为什么我会不断地犯这个错误,或者有办法成功地做到这一点吗
另外,下面是我的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>
测试自动化
遗嘱自动化
1.0-快照
org.apache.maven.plugins
maven汇编插件
真的
com.test.automation.Executable
带有依赖项的jar
org.seleniumhq.selenium
硒服务器
2.39.0
org.seleniumhq.selenium
硒爪哇
2.40.0
朱尼特
朱尼特
4.11
测试
org.testng
testng
6.1.1
测试
我终于为遇到这个问题的其他人找到了答案,这就是我创建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>
最后,以下是创建适当jar文件的步骤:
File file = new File
("C:\\Users\\<Username>\\<Proj Name>\\src\\test\\java\\src\\
test\\resources\\binaries\\IEDriverServer.exe");
二,。如果使用IE,请确保为所有区域或所有区域都设置了保护模式(在IE中,转到Internet选项…>安全性(选项卡)>启用保护模式复选框)希望这对处于相同情况下的任何其他人都有帮助!:-)这正是我想做的。我仍然缺少一些细节。你能把你的舱单寄出去吗?还有你项目的框架?我想弄清楚的是,您是将测试转移到主源中,还是将它们留在测试中?您的公共静态void main(String[]args)是什么。。看起来像谢谢谢谢你urbanaut,我也在寻找类似的解决方案,我是新手,不确定我应该在我的主方法中放什么,在我使用你在我的主方法中提到的相同代码之前,但当我创建可执行jar时,它不起作用,抱怨“找不到或加载主类”不知道如何解决。从你们的步骤中,我有几个问题1。我应该在main方法中添加什么来运行测试?2.在你的第6步和第7步中,我不清楚,你能详细说明一下吗?如果可以的话,截图会很好。3.如何运行这个jar以便调用我的testng测试?请提供您的宝贵意见。感谢
File file = new File
("C:\\Users\\<Username>\\<Proj Name>\\src\\test\\java\\src\\
test\\resources\\binaries\\IEDriverServer.exe");
src
TestAutomation.jar