当前位置: 首页 > 知识库问答 >
问题:

如何在Src/test-integration/java文件夹中的maven中运行UnitTests

苏志
2023-03-14

当我们说mvn测试时,通常的方法是maven会在src/test/java文件夹中查找存在的测试。但是我的测试放在不同的文件夹中,即src/integration-test/java。如何通过命令行运行该文件夹中的测试?

共有1个答案

赵征
2023-03-14

首先,您不应该通过测试生命周期运行那些集成测试,因为存在前集成测试、集成测试和后集成测试生命周期阶段。除了集成测试之外,maven-failsafe-plugin还负责。

有几种选择来处理你的情况。首先,您应该遵循集成测试的命名约定

<includes>
 <include>**/IT*.java</include>
 <include>**/*IT.java</include>
 <include>**/*ITCase.java</include>
</includes>

这意味着将集成测试放入默认文件夹src/test/java。如果您有一个多模块构建,最好有一个单独的模块,它只包含集成测试,或者您可以按照您决定的路径使用一个单独的文件夹(这不是最好的):

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

您必须像这样配置maven-failsafe-plugin:

<project>
  [...]
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-failsafe-plugin</artifactId>
        <version>2.14.1</version>
        <executions>
          <execution>
            <goals>
              <goal>integration-test</goal>
              <goal>verify</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
  [...]
</project>

配置完成后,您可以通过以下方式运行集成测试:

mvn verify
 类似资料:
  • 我有一个java,gradle项目。我的少年 选择一些配置 Junit中拾取此文件的代码是 当我奔跑时 这个很好用。Junit能够从csv文件中拾取数据。 当我在Eclipse中运行JUnit时,即通过Shift Alt X T,然后JUnit以空指针异常中断。 我明白原因。当我在eclipse中运行Junit时,它会在同一个文件夹中查找该文件,但没有找到它,因此失败。但是,当我使用gradle运

  • 我有一个Java/Spring-Boot类 问题:当我在src/java/main中运行类MyApplication时,一切都很酷。但是:当我在src/java/test中运行这个类时,它会失败 附注:我有spring-boot-starter-web依赖项。通过@springboottest,我得到了以下信息:

  • 问题内容: 我正在尝试从软件包中的src /文件夹中获取图像,但是没有成功。 有人建议吗? 问题答案: 是否将其复制到构建代码的任何地方?作为一个在目录没有帮助,如果在执行时类是在目录(或jar文件)。 另请注意,如果您的课程在一个包中,则默认情况下它将相对于该包起作用。因此,如果您的包是foo.bar,它将在寻找。如果要使其绝对,则可以使用,也可以在字符串的开头放置前导: 要么 当然,如果目录

  • 我正在从事一个JavaFX8(maven)项目。我想在sources(而不是resources)文件夹中存储一个fxml文件 当我将fxml存储到location/src/main/resources/views/b/MyFxml时。fxml我使用命令加载它时没有错误, 有没有办法从/src/main/java/package/name/RoleView加载我的fxml文件。fxml位置?

  • 我正在处理一个JavaFX8(maven)项目。我想在sources(而不是resources)文件夹中存储fxml文件。 当我将fxml存储到位置/src/main/resources/views/b/myfxml.fxml时, 有没有办法从/src/main/java/package/name/roleview.fxml位置加载我的fxml文件?

  • 我想在一个Spring Boot应用程序中添加一些集成测试。由此产生的结构如下 这可能吗?我是在中这样做的,但在我的集成测试中,它没有将包识别为。相反,它会识别这个。它不像使用和那样遵循约定,这是预期的。有没有办法在和旁边添加更多的文件夹,并遵循相同的约定(在包声明中不考虑java文件夹)?如果不是,当包含集成测试时,关于项目结构的最佳实践是什么?它们应该在测试文件夹中吗?如果可能的话,我想避免那