【问题标题】:Running my testNG project from a jar using Maven使用 Maven 从 jar 运行我的 testNG 项目
【发布时间】:2016-12-09 07:15:48
【问题描述】:

我正在使用 testNG 和 Selenium 对我的应用程序运行多项功能测试。

为了进行更稳定的测试,我决定将 firefox 二进制文件包含在项目文件夹中,并调用这个特定的二进制文件而不是默认浏览器。

我现在遇到的问题是如果有人想使用我的测试,他必须在他的eclipse中导入项目,重新链接java 8库,在他的eclipse上安装TestNG,将selenium jar添加到项目中并最终创建testNG 配置并最终使用选择的 xml 运行它。 我想知道这是否可以简单地将项目转换为我将通过命令行调用的 jar 文件,例如:

java SeleniumTestNGTest myXmlFile.xml

这样会避免上面写的不同设置吗?我们可以使用 java 从 jar 调用 testNG 测试吗?可以从 jar 文件中运行 firefox 吗?

编辑 1:评论中的一个好建议是将我的源代码迁移到 maven 项目。但仍然存在相同的问题。 maven 是否能够管理需要我的测试项目的设置? (至于 selenium jar、java 8 库、testNG jar 和运行 firefox 浏览器)

【问题讨论】:

  • 这就是maven受欢迎的原因。考虑将您的源代码迁移到 maven 项目。
  • 你好,来自守望先锋的 thorbjorn。 maven 怎么能帮助我更多?我知道它可以管理项目的依赖关系,我会在互联网上期待它,但如果我能从你那里获得更多关于如何使用 maven 解决我的问题的信息,那就太好了。
  • @BobReynolds Maven 有一本手册,你不能只用 stackoverflow 答案中的一段信息来完成它。但是由于您的问题与使用 Maven 无关,因此目前使用 Maven 创建任何类型的答案都会使答案偏离主题。
  • Maven 允许您在 maven pom.xml 文件中指定构建所需的各个步骤。这包括使用适当的 JVM,拉入您需要的 jars(作为 maven 依赖项),以及在您随源提供的配置文件中调用 selenium。您可能需要学习和/或重新学习很多东西 - Maven 有意见 - 但对我来说,在不依赖特定 IDE 的情况下进行开发的能力本身就很有价值。
  • 我认为 Bob 想知道,是否可以将测试打包到 jar 文件中,这样它就可以在没有依赖关系的情况下分发和执行。看到这个:stackoverflow.com/questions/16393223/….

标签: java eclipse maven selenium testng


【解决方案1】:

最后我没有使用 maven,我只是在我的项目中创建了一个 main。主程序将调用在程序参数中传递的 XML 文件中指定的 testNG 套件。这种方法将允许我从 jar 执行测试,而无需关心外部库(库 testNG 和 selenium 已经在里面)。

这里是主要的代码,如果它可以帮助任何人:

 public class Runner {

public static void main(String[] args) throws IOException {

    if(args.length != 2) {
        System.out.println("Usage : <xmlFile> <OutputFileName>");
        System.exit(-1);
    }

    Path path = Paths.get(args[0]);//Path to the xml

    new PrintWriter(args[1]).close();

    Charset charset = StandardCharsets.UTF_8;

    String content = new String(Files.readAllBytes(path), charset);
    content = content.replaceAll("theOutputFileNamePattern", args[1]);
    Files.write(path, content.getBytes(charset));

    //We create a testNG object to run the test specified in the xml file
    TestListenerAdapter tla = new TestListenerAdapter();
    TestNG testng = new TestNG();

    List<String> suites = Lists.newArrayList();
    suites.add(args[0]);

    testng.setTestSuites(suites);

    testng.run();

}

}

然后你只需要进入eclipse,然后点击File -> Export -> Runnable Jar file -> 选择你要导出的配置 -> Finish。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-13
    • 1970-01-01
    • 2014-05-04
    • 2014-11-06
    • 2015-04-05
    • 2017-10-11
    相关资源
    最近更新 更多