如何使用Maven运行我的Selenium测试?

时间:2015-06-04 11:45:55

标签: java eclipse maven selenium

我试图弄清楚如何在不使用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中设置正确的目标等,但我不知道它们应该是什么,并且令人惊讶的是无法在网上找到任何目标。

有人可以帮忙吗?

2 个答案:

答案 0 :(得分: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和其他综合测试的调用。

答案 1 :(得分:0)

好的,我终于意识到这实际上是Maven特定的问题,而不是Eclipse或Selenium。

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

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

正如您可以从代码段中收集的那样,可以通过在pom.xml中列出参数来传递参数。另外,请务必在mainClass元素中使用正确的包名称。

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

信用证必须转到http://www.vineetmanohar.com/2009/11/3-ways-to-run-java-main-from-maven/列出几种方法来执行此操作。