【问题标题】:How can I run my Selenium tests with Maven? [duplicate]如何使用 Maven 运行 Selenium 测试? [复制]
【发布时间】:2015-08-19 00:22:18
【问题描述】:

我正在尝试弄清楚如何在不使用 Eclipse 或 IntelliJ 或任何其他 IDE 的情况下运行 Selenium WebDriver 测试。我使用纯文本编辑器进行所有 Java 开发,并且不想仅仅为了编译和运行测试而安装(和学习)IDE。

我已经尝试按照 Selenium 文档进行操作,但它并没有真正告诉您如何从命令行运行测试。

我对 maven 的简要经验如下:

    $ mvn compile
    <snip>
    No sources to compile

    $ mvn test
    <snip>
    No tests to run

    $ mvn run
    <snip>
    Invalid task 'run'

我知道的唯一另一个是mvn jetty:run,但这似乎不对,因为我不想运行新的网络服务器。

我怀疑我只需要在我的 pom.xml 中设置正确的目标等,但我不知道它们应该是什么,而且令人惊讶的是在网上找不到任何目标。

有人可以帮忙吗?

【问题讨论】:

标签: java eclipse maven selenium


【解决方案1】:

简而言之:

mvn integration-testmvn verify 是您正在寻找的东西。

说明

您调用的目标是 maven 的生命周期阶段(请参阅 Maven Lifecycle Reference)。 mvn test 用于独立单元测试,mvn integration-test 在编译、测试和打包后运行。这也是调用 Selenium 测试的阶段。如果您需要启动和停止 Jetty、Tomcat、JBoss 等,您可以将它们的启动/停止绑定到 pre-integration-testpost-integration-test

我通常使用Failsafe 运行我的集成测试,并在那里执行对 Selenium 和其他集成测试的调用。

【讨论】:

    【解决方案2】:

    好的,在意识到这实际上是一个特定于 Maven 的问题而不是 Eclipse 或 Selenium 之后,我终于弄明白了。

    通过使用 exec-maven-plugin 并将以下内容添加到 pom.xml 中,可以使 Maven 运行它编译的代码:

        <build>
         <plugins>
          <plugin>
           <groupId>org.codehaus.mojo</groupId>
           <artifactId>exec-maven-plugin</artifactId>
           <version>1.1.1</version>
           <executions>
            <execution>
             <phase>test</phase>
             <goals>
              <goal>java</goal>
             </goals>
             <configuration>
              <mainClass>Selenium2Example</mainClass>
              <arguments>
               <argument>arg0</argument>
               <argument>arg1</argument>
              </arguments>
             </configuration>
            </execution>
           </executions>
          </plugin>
         </plugins>
        </build>
    

    正如您可能从 sn-p 中收集到的,可以通过在 pom.xml 中列出参数来传递参数。此外,请务必在 mainClass 元素中使用正确的包名称。

    然后您可以运行mvn compile,然后运行mvn test 来编译和运行您的代码。

    信用必须去http://www.vineetmanohar.com/2009/11/3-ways-to-run-java-main-from-maven/列出几种方法来做到这一点。

    【讨论】:

    • 实际上,人们通常会使用 Maven Surefire 或 Failsafe 插件。这样你就不需要像上面那样运行它:这类似于在命令行上运行它。 Surefire 已经默认绑定到“测试”阶段。
    猜你喜欢
    • 1970-01-01
    • 2014-04-23
    • 2017-01-04
    • 1970-01-01
    • 1970-01-01
    • 2012-02-11
    • 2017-02-10
    • 2012-07-04
    • 2014-03-12
    相关资源
    最近更新 更多