任何人都可以帮我如何为testng maven项目制作可执行jar . 我的目标是使用bat文件运行testng可执行jar来运行单元测试
下面是我的文件夹结构
如果你能帮助我,感激不尽 .
您应该使用maven插件来运行带有mvn测试的testNG
<build> <!-- Source directory configuration --> <sourceDirectory>src</sourceDirectory> <plugins> <!-- Following plugin executes the testng tests --> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.14.1</version> <configuration> <!-- Suite testng xml file to consider for test execution --> <suiteXmlFiles> <suiteXmlFile>testng.xml</suiteXmlFile> <suiteXmlFile>suites-test-testng.xml</suiteXmlFile> </suiteXmlFiles> </configuration> </plugin> </plugins> </build>
如果你真的想要一个可执行的jar(我不想你这么做),你需要使用shade插件:
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.greg</groupId> <artifactId>tester</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <name>tester</name> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> .... </dependencies> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>3.0.0</version> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <transformers> <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> <manifestEntries> <Main-Class>com.greg.Application</Main-Class> </manifestEntries> </transformer> </transformers> </configuration> </execution> </executions> </plugin> </plugins> </build> </project>
有一种简单的方法,你可以通过点击右边的日食来创建可执行的jar - https://www.mkyong.com/java/how-to-make-an-executable-jar-file/
并创建1个java类,它将调用testNG xml文件并使用testNG.run()执行 .
public class InvokeTestNGJava {
/** * @param args */ public static void main(String[] args) throws Exception { System.out.println("Started!"); TestNG testng = new TestNG(); List<String> suites = Lists.newArrayList(); suites.add("src"+File.separator+"main"+File.separator+"resources"+File.separator+"stats-comparison.xml"); testng.setTestSuites(suites); testng.run(); }
}
并且java类将使用 - java -classpath yourjar.jar youpackage.InvokeTestNGJava运行 . 它简单地调用testng xml并运行它 .
2 回答
您应该使用maven插件来运行带有mvn测试的testNG
如果你真的想要一个可执行的jar(我不想你这么做),你需要使用shade插件:
有一种简单的方法,你可以通过点击右边的日食来创建可执行的jar - https://www.mkyong.com/java/how-to-make-an-executable-jar-file/
并创建1个java类,它将调用testNG xml文件并使用testNG.run()执行 .
public class InvokeTestNGJava {
}
并且java类将使用 - java -classpath yourjar.jar youpackage.InvokeTestNGJava运行 . 它简单地调用testng xml并运行它 .