2015-06-04 91 views
0

我想弄清楚如何運行Selenium WebDriver測試而不必使用Eclipse或IntelliJ或任何其他IDE。我使用純文本編輯器來完成我所有的Java開發,並且不希望爲了編譯和運行測試而安裝(並學習)IDE。如何使用Maven運行我的Selenium測試?

我試過下面的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但似乎權利並不因爲我不想運行一個新的Web服務器。

我懷疑我只是需要在我的pom.xml中設置正確的目標等,但我不知道他們應該是什麼,並且出人意料地找不到任何聯機。

任何人都可以幫忙嗎?

+0

https://easytolearnautomationtesting.wordpress.com/maven-integration-with-automation-script/這將幫助您更好地瞭解如何通過maven執行腳本。 – ArrchanaMohan

回答

0

好吧,我終於意識到這實際上是一個Maven特有的問題,而不是Eclipse或Selenium。

Maven可以進行運行它通過編譯使用exec-Maven的插件,並添加以下代碼到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編譯並運行您的代碼。

Credit必須去http://www.vineetmanohar.com/2009/11/3-ways-to-run-java-main-from-maven/列出幾種方法來做到這一點。

+0

實際上,人們通常使用的是Maven Surefire或Failsafe插件。這樣你不需要像上面那樣運行它:這與在命令行上運行它類似。默認情況下,Surefire已經將自己綁定到「測試」階段。 – djangofan

1

簡而言之:

mvn integration-testmvn verify就是你要找的東西。

說明

的目標,你調用,都是行家的生命週期階段(見Maven Lifecycle Reference)。 mvn test適用於獨立的單元測試,mvn integration-test在編譯,測試和打包後運行。那也將是你調用Selenium測試的階段。如果你需要啓動和停止Jetty,Tomcat,JBoss等,你可以將這些啓動/停止綁定到pre-integration-testpost-integration-test

我通常使用Failsafe運行集成測試,並在那裏執行Selenium和其他集成測試的調用。

相關問題