如何从默认的“ Maven测试”和Eclipse“以JUnit测试运行”中排除特定的单元测试

Kes*_*115 6 junit unit-testing maven maven-surefire-plugin

在我的代码中,我有两种测试类型:快速单元测试慢速性能测试。我试图确保性能测试永远不会运行,除非用户明确希望运行它们(例如,使用正确的测试套件或maven构建配置文件),因为这会导致网格上计算量很大的远程进程的启动。

我了解如何使用maven-surefire-plugin创建排除(或包括)特定测试的构建配置文件,如本网站所述。但是,我的问题是,我还没有找到一种将测试从默认运行中排除的方法,同时仍然提供了在需要时运行测试的选项。默认运行是指:

  • 右键单击Eclipse中的项目,然后选择“运行方式| Maven测试”
  • 右键单击src / test / java并选择“以junit测试运行”

在以上两种情况下,它都会运行所有单元测试(包括我希望默认排除的慢速测试)。如果我尝试运行的构建配置文件中有错字,也会发生同样的事情。

有没有办法可以将性能测试从默认运行中排除,而不必将其移动到单独的Maven模块中?

ben*_*ico 1

使用时,profiles您可以默认激活一项测试,以排除慢速测试,并使用另一项来运行所有测试。

您必须在您的fastTestOnly个人资料中指定这些标签:

<profiles>
  <profile>
    <id>fastTestOnly</id>
    <activation>
      <activeByDefault>true</activeByDefault>
    </activation>
    ...
  </profile>
</profiles>
Run Code Online (Sandbox Code Playgroud)

这样,当您运行简单时,mvn install仅选择的配置文件是fastTestOnly.