为testNG项目创建maven fat jar

时间:2015-09-03 10:57:28

标签: maven testng executable-jar

我对Maven完全不熟悉。我有一个使用TestNG注释的maven项目(selenium项目)。这意味着我在整个项目中没有主要方法。我想用CurrentCulture创建一个胖的JAR文件。我已经为mvn包找了一些文章,但找不到任何相关的东西。我们怎样才能为没有主要方法的项目实现这一目标。

  

修改

在检查更多文章时,我在主要方法下面添加了Class,如下所示

DateSeparator

其中AnnotationTest是使用所有注释的类。 当我从命令行运行生成的* one-jar.jar文件时,我得到mvn package。由于它是maven项目,我的test.class文件位于 / target / test-classes 中。如何在main方法中使其可用。

1 个答案:

答案 0 :(得分:1)

我试图弄清楚这件事,以防万一其他人出现在这里,这就是我解决该问题的方法:

我创建了一个主类,该主类可以像这样运行testng.xml文件中的所有类:

public class MainClass {

    public static void main(String[] args){
        // Get the path to testng.xml
        String xmlPath = System.getProperty("user.dir") + "/testng.xml";

        // Run all the tests in testng.xml
        TestNG testng = new TestNG();
        List<String> suites = Lists.newArrayList();
        suites.add(xmlPath);
        testng.setTestSuites(suites);
        testng.run();
    }
}

然后,您可以按照以下说明使用Maven为您构建胖罐:How can I create an executable JAR with dependencies using Maven?

这仅在您已经有一个testng.xml文件的情况下才有帮助,而不是必须将其命名为,您只需要xml中已定义的所有类或测试,就像这样:

<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">

<suite name="Your Suite Name">

    <test name="TestName">
        <classes>
            <class name="com.fullyQualified.ClassName"></class>
            <class name="com.fullyQualified.ClassName2"></class>
            <class name="com.fullyQualified.ClassName3"></class>
        </classes>
    </test>

</suite>