【问题标题】:Creating maven fat jar for testNG project为 testNG 项目创建 maven fat jar
【发布时间】:2015-09-03 10:57:28
【问题描述】:

我对 Maven 完全陌生。我有一个使用 TestNG 注释的 Maven 项目(硒项目)。这意味着我在整个项目中没有主要方法。我想用mvn package 创建一个单独的胖JAR 文件。我浏览了几篇关于 mvn 包的文章,但找不到任何相关的东西。对于没有主要方法的项目,我们如何才能做到这一点。

编辑

在查看更多文章时,我在 Class 下面添加了 main 方法如下

public class MainTest
{
    public static void main(String[] args)
      {
        TestListenerAdapter tla = new TestListenerAdapter();
        TestNG testng = new TestNG();
        testng.setTestClasses(new Class[] { AnnotationTest.class });
        testng.addListener(tla);
        testng.run();
     }
}

其中 AnnotationTest 是一个使用所有注释的类。 当我从命令行运行生成的 *one-jar.jar 文件时,我得到 ClassNotFoundException:AnnotationTest 。因为它是 maven 项目,所以我的 test.class 文件位于 /target/test-classes 中。如何使其在主要方法中可用。

【问题讨论】:

  • 您的问题到底是什么?你已经尝试过什么?见stackoverflow.com/help/how-to-ask
  • @drkthng:感谢您提供上述链接。我可能没有正确构建我的查询。请检查编辑。

标签: maven testng executable-jar


【解决方案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 为您构建胖 jar,如下所述: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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-23
    • 2016-12-09
    • 2022-01-16
    相关资源
    最近更新 更多