我试图弄清楚如何在不使用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中设置正确的目标等,但我不知道它们应该是什么,并且令人惊讶的是无法在网上找到任何目标。
有人可以帮忙吗?
答案 0 :(得分:1)
mvn integration-test
或mvn verify
是您正在寻找的东西。
您正在调用的目标是maven的生命周期阶段(请参阅Maven Lifecycle Reference)。 mvn test
用于独立单元测试,mvn integration-test
在编译,测试和打包后运行。那也是你调用Selenium测试的阶段。如果你需要启动和停止Jetty,Tomcat,JBoss等,你可以将这些开始/停止绑定到pre-integration-test
和post-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/列出几种方法来执行此操作。