2016-01-24 105 views
2

我想添加一些集成測試春季啓動應用程序。由此產生的結構將是這IntelliJ集成測試文件夾旁邊的主要和測試

MyProject 
├── myapp.iml 
├── pom.xml 
└── src 
    ├── integration-test (integration test sources root) 
   │ ├── java 
   │ │   └── com 
   │ │    └── mysite 
   │ │     └── myapp 
   │ │      └── AppTestIT.java 
   │ └── integration-test.iml 
    │ 
   ├── main (sources root) 
   │   ├── java 
   │   │   └── com 
   │   │    └── mysite 
   │   │     └── myapp 
   │   │      └── App.java 
   │   └── main.iml 
    │ 
   └── test (test sources root) 
    ├── java 
    │   └── com 
    │    └── mysite 
    │     └── myapp 
    │      └── AppTest.java 
    └── test.iml 

這可能嗎?我在Intellij 15 Ultimate中執行此操作,並且它在我的集成測試中無法識別該包爲com.mysite.myapp。相反它承認這java.com.mysite.myapp。它不遵循約定,因爲它與預期的maintest一樣。有沒有辦法在maintest旁邊添加更多的文件夾,並遵循相同的約定(包文件沒有考慮到java文件夾)? 如果不是,包括集成測試在內的項目結構的最佳實踐是什麼?他們應該在測試文件夾中嗎?如果可能,我想避免這種情況。

回答

8

這應該就像右鍵點擊integration-test文件夾一樣簡單,向下滾動到「Mark Directory As ...」並選擇「Test Sources Root」。

請注意,如果您有其他開發人員在處理此項目,他們將不得不做同樣的事情(除非您共享IDEA文件)。

+0

對於我的項目結構是java文件夾。儘管如此,仍然是有效的答案謝謝 – alkis

+0

你如何在Android Studio中做到這一點? –

+0

非常感謝! – Siddhartha

9

在這種情況下,正確的方法是適當地更改Maven配置,以便在命令行上執行構建時(例如在構建服務器等上)也可以正常工作。您可以通過配置構建輔助性Maven的插件做到這一點:

<build> 
<plugins> 
    <plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>build-helper-maven-plugin</artifactId> 
    <version>1.10</version> 
    <executions> 
     <execution> 
     <id>add-test-source</id> 
     <phase>generate-test-sources</phase> 
     <goals> 
      <goal>add-test-source</goal> 
     </goals> 
     <configuration> 
      <sources> 
      <source>src/integration-test/java</source> 
      </sources> 
     </configuration> 
     </execution> 
    </executions> 
    </plugin> 
</plugins> 

的IntelliJ拿起這個配置和測試源文件夾會自動標記的文件夾。