【问题标题】:IntelliJ integration test folder alongside main and testIntelliJ 集成测试文件夹以及 main 和 test
【发布时间】:2016-04-30 18:11:52
【问题描述】:

我想向 Spring Boot 应用程序添加一些集成测试。生成的结构将是这样的

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 文件夹)? 如果不是,在包含集成测试时,关于项目结构的最佳实践是什么?它们应该在测试文件夹中吗?如果可能的话,我想避免这种情况。

【问题讨论】:

    标签: java intellij-idea spring-boot maven-3 integration-testing


    【解决方案1】:

    在这种情况下,正确的方法是适当地更改 Maven 配置,以便在命令行上执行构建时也能正常工作(例如,在构建服务器上等)。您可以通过配置 build-helper-maven-plugin 来做到这一点:

    <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 选择此配置并将文件夹自动标记为测试源文件夹。

    【讨论】:

      【解决方案2】:

      这应该就像右键单击 integration-test 文件夹,向下滚动到“将目录标记为...”并选择“测试源根目录”一样简单。

      请注意,如果您有其他开发人员在此项目上工作,他们将不得不做同样的事情(除非您共享 IDEA 文件)。

      【讨论】:

      • 对于我的项目结构是java文件夹。虽然仍然是一个有效的答案。谢谢
      • 你如何在 Android Studio 中做到这一点?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-06-22
      • 2018-08-29
      • 1970-01-01
      • 2016-06-22
      • 2016-01-30
      • 1970-01-01
      • 2013-10-17
      相关资源
      最近更新 更多