2014-05-13 103 views
0

我升级了一个只包含集成测试的项目,用JAVA编写。Eclipse JAVA独立单元测试和集成测试

现在我们要编写单元测试,所以我决定创建的src /它/ java文件夹把所有现有的测试和SRC/test/java下写了新的单元测试

我有使用surfire和构建 - 帮助做到这一点。

在命令行我可以运行

MVN干净安装,只SRC /测试/ java目录中读取测试

当即时通讯做

MVN -Pintegration测试全新安装我看到在src/it/java中进行测试用于测试

所以在命令行中所有工作都正常。

现在我想导入我的项目在eclipe上。当我这样做时,只有src/test/java被用作源文件夹。 如何设置pom.xml以将src/test/java和src/it/java作为源文件夹?

**这里是我Builder插件的conf

<plugin>  
<groupId>org.codehaus.mojo</groupId>  
<artifactId>build-helper-maven-plugin</artifactId> 
<version>1.8</version> 
<executions>   
    <execution>    
     <id>add-test-source</id>  
     <phase>process-resources</phase>    
     <goals>     
      <goal>add-test-source</goal>    
     </goals>    
     <configuration>     
      <sources>      
     <source>src/it/java</source>     
     </sources>    
     </configuration>   
    </execution>  
</executions> 
</plugin> 

非常感谢!

回答

-2

您将需要通过手动添加的src /它/ JAVA文件夹在Eclipse:

项目属性 - >Java构建路径 - >源标签 - >添加文件夹

+1

是的,我现在但是我想要什么,当我导入项目时,它会自动执行此操作? –

3

解决此类问题一般有三种方法。

使用单独的文件夹进行集成测试,因为您已决定使用该文件夹。

. 
|-- pom.xml 
`-- src 
    |-- it 
    | `-- java 
    |  `-- com 
    |   `-- soebes 
    |    `-- maui 
    |     `-- it 
    |      `-- BitMaskIT.java 
    |-- main 
    | `-- java 
    |  `-- com 
    |   `-- soebes 
    |    `-- maui 
    |     `-- it 
    |      `-- BitMask.java 
    `-- test 
     `-- java 
      `-- com 
       `-- soebes 
        `-- maui 
         `-- it 
          `-- BitMaskTest.java 

为了得到这个工作正常在Eclipse中你需要使用构建辅助性Maven的插件,它 你已经建议:

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>build-helper-maven-plugin</artifactId> 
    <version>1.8</version> 
    <executions> 
     <execution> 
     <id>add-test-source</id> 
     <!-- 
      This will help m2eclipse to recognize the folder as source 
      folder after update project configuration. 
     --> 
     <phase>process-resources</phase> 
     <goals> 
      <goal>add-test-source</goal> 
     </goals> 
     <configuration> 
      <sources> 
      <source>src/it/java</source> 
      </sources> 
     </configuration> 
     </execution> 
    </executions> 
    </plugin> 

但你可以看到这需要你的pom文件中的几个补充配置。

从Maven的万无一失,插件集成测试使用上述

除了是完全错误的,原因Maven的万无一失,插件是为单元测试和集成测试,以便更好地与maven-failsafe-plugin去整合试验。

最好是遵循单元和集成测试的命名约定。在 maven-surefire-plugin the unit tests follow the following convention

- *Test.java 
- *TestCase.java 
- Test*.java 

,而集成测试中maven-failsafe-plugin follow the following convention:

- *IT.java 
- *ITCase.java 
- IT*.java 
. 
|-- pom.xml 
`-- src 
    |-- main 
    | `-- java 
    |  `-- com 
    |   `-- soebes 
    |    `-- maui 
    |     `-- it 
    |      `-- BitMask.java 
    `-- test 
     `-- java 
      `-- com 
       `-- soebes 
        `-- maui 
         `-- it 
          |-- BitMaskIT.java 
          `-- BitMaskTest.java 

但有时更多更好地使其中仅包含 集成测试它们分开单独的模块单元测试。如果 集成测试具有与单元测试不同的配置,这可能会有帮助。

所以使得结构是这样的:

+-- root (pom.xml) 
    +--- mod-it (pom.xml) 
    +--- mod-core (pom.xml) 

您应遵循mod-it的命名约定使用Maven的故障保护,插件 和正确地在Maven的integration-test阶段执行集成测试 建立生命周期。

+0

感谢您的回复,实际上我已经添加builder-helper-plugin但eclipse不能识别src/it/java文件夹作为源,我需要手动添加它,我是否需要在eclipse上安装某些东西?我有测试添加testsomcedirectory在pom.xml中,但它取代了第一个src/test/java :),我不能添加这个标记两次...... :( –