2016-07-07 51 views
1

TL; DR;如何在Intellij中輕鬆地在類中運行測試,以便它們在maven中執行validate階段並設置所有Spring屬性。在Intellij中設置測試屬性

我已經將Maven項目導入Intellij。測試使用surefire運行,即mvn surefire:test -Dtest=SomeTest。其中一些測試需要分配端口。通過端口號春屬性設置使用validate階段:

<plugin> 
    <groupId>org.sonatype.plugins</groupId> 
    <artifactId>port-allocator-maven-plugin</artifactId> 
    <executions> 
     <execution> 
      <phase>validate</phase> 
      <goals> 
       <goal>allocate-ports</goal> 
      </goals> 
      <configuration> 
       <ports> 
        <port> 
         <name>my-first-port</name> 
        </port> 
       </ports> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

當我通過Right click on file > 'Run SomeTest'的IntelliJ從運行測試失敗,對於需要my-first-port測試。顯然validate階段沒有運行。

我希望能夠以儘可能少的點擊量在單個類上運行測試。我需要兩種:

  • 某種方式來運行validate階段時Right click > 'Run SomeTest'發生,或
  • 中的IntelliJ Maven的運行配置創建,可以使用命令狀mvn surefire:test -Dtest=$CLASS_NAME$單班運行,但我不知道,如果任何屬性($CLASS_NAME$將是當前打開的類的類名稱)

任何想法?

回答

0

我在IntelliJ的外部工具中找到了部分解決方案。我可以輕鬆地在那裏設置cmd /C mvn test-compile surefire:test -Dtest=$FileClass$。感謝它,我可以運行單擊測試3點擊Tools > External Tools > MyTool

最大的缺點是我無法調試以這種方式運行的測試。不幸的是,運行配置沒有宏$FileClass$,所以我每次調試時都必須爲每個類設置單獨的運行配置。

1

默認情況下,運行測試時,intellij不會運行任何maven的東西,並且您要求的內容可能不起作用(afaik)。

但是,可能有另一種方法來實現這一點。該插件生成一個隨機端口並將其分配給給定的變量。它用於在同一個盒子上同時運行多個測試,並且沒有端口衝突。當你手動運行測試時,你可能沒有相同的約束,你可以在已知的端口上運行它。爲此,您可以使用IntelliJ的測試運行配置對話框將my-first-port的值設置爲已知值(比如56789)。

+0

問題是端口只是一個例子,我不想模擬intellij配置中的pom驗證階段的所有操作。 –

相關問題