如何使用maven在testng中制作可执行jar

时间:2017-04-05 11:18:46

标签: maven testng maven-plugin executable-jar maven-assembly-plugin

任何人都可以帮助我如何为testng maven项目制作可执行jar。我的目标是使用bat文件运行testng可执行jar来运行单元测试

以下是我的文件夹结构

enter image description here

感谢您能帮助我。

2 个答案:

答案 0 :(得分:0)

你应该使用maven插件用mvn test

运行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(我不认为你这么做),你需要使用阴影插件:

<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>

答案 1 :(得分:0)

有一种简单的方法,您可以通过在eclipse上单击右键来创建可执行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并运行它。