99

如何一次从两个或多个 IDEA 模块运行所有测试?

我正在使用许多模块,并且经常运行所有单元测试很重要,当我选择运行多个文件夹时,上下文菜单上不再有“运行”选项。

4

7 回答 7

125

最佳方式:(3年后编辑)

甚至还有更好的方法来实现这一点。来自JetBrains JUnit 运行配置文档

  1. 选择菜单“运行”→“编辑配置...”。单击左上角的绿色加号并选择 JUnit。

  2. 选择“测试种类”到“模式”,并完全按照您看到的方式输入此正则表达式:(^(?!.*IT$).*$它以插入符号开头,^以美元结尾$)。此正则表达式表示:所有未以 IT 名义完成的测试

    注意:正则表达式将匹配限定的文件名,从而也很容易被模块/包排除。如果您的集成测试被分组在一个包com.me.integrationtests中,则匹配此包中所有内容的正则表达式将是^(?!.*com\.me\.integrationtests.*).*$

  3. 选择“搜索测试”到“在整个项目中”。工作目录应设置为顶级模块工作目录(应默认设置)。

  4. 为您的测试输入一个名称,例如“所有单元测试”。我也更喜欢标记“共享”选项,这样这个配置以后就不会消失了。单击应用和确定。

您可以尝试使用此正则表达式来满足您的需求。

原答案:

这是可行的,虽然它不舒服。

  1. 选择第一个模块,右键单击test/java目录并“运行所有测试”。它创建测试配置。
  2. 选择“编辑配置”并在新创建的配置上选中“共享”,以便将其保存。
  3. 选择第二个模块“运行所有测试”,并在此配置上选中“共享”。
  4. 在“启动前”部分,单击“+”并选择“运行另一个配置”,然后选择第一个模块的配置。

这样,您可以按顺序运行配置,并且每个配置都会获得一个新选项卡。不过,总比没有好。

于 2013-07-16T13:45:02.030 回答
23

您必须创建一个“运行配置”:

  1. 转到顶部的下拉菜单,在“制作”按钮的右侧,然后单击它
  2. 选择“编辑配置”
  3. 现在单击“+”按钮添加新的运行配置并选择 JUnit
  4. 然后,在配置“运行配置”时,您会找到“测试种类”下拉菜单,选择“目录中的所有类”
  5. 选择要用作根目录的目录,您可以选择项目的顶级目录或模块的任何目录。
  6. 选择从中提取类路径的 IntelliJ 模块(如果它有类路径,它可以是顶级项目)
于 2012-07-13T11:11:06.627 回答
16

选择所有模块,右键单击它们并选择运行所有测试。这将创建一个名为“整个项目”的配置,您可以随时再次运行该配置。

我发现这比接受的答案更好,因为这会为每个模块单独运行单元测试。如果您的测试用例在其运行时使用特定于模块的资源,那么公认答案的最佳方法将不起作用。

选择所有模块

选择所有模块

右键单击并选择运行所有测试

右键单击并选择运行所有测试

获取新的运行配置

获取新的运行配置

于 2018-10-19T17:40:11.230 回答
5

对我来说,这两种解决方案都不起作用或没有达到预期的效果。

对我来说,我有 3 个模块。我的模块依赖项看起来像这样

展示->领域->数据

我只是想一起执行所有测试。所以我想出了“跨模块依赖”的方法

我的设置如下所示:

在此处输入图像描述

于 2016-05-26T10:05:24.923 回答
2

这对我来说适用于具有多个模块的项目。

创建一个新的 JUnit 运行/调试配置。测试类型:'All in package' 搜索测试:'整个项目'

您还必须指定一个工作目录。

于 2018-08-17T15:09:17.357 回答
1

另一个不那么明显的情况是多个项目需要代码覆盖。天真的解决方案是选择多个项目并一次在其中运行所有单元测试。事实证明,如果类路径更改并且 IntelliJ 每个运行配置只有一个类路径条目,则单元测试可能会失败。在这种情况下,按顺序对项目运行单元测试实际上就足够了。这是因为在每次运行结束时 IntelliJ(2017.2.5 社区版)都会询问收集的覆盖率是否应该替换或应该添加到以前收集的覆盖率统计信息中。

于 2018-02-14T12:41:21.760 回答
0

如果你使用 Gradle 并且有多个模块,你可以这样做:

  • 确保 IntelliJ 设置为使用 Gradle 运行测试 ( Settings/Build, Execution, Deployment/Build Tools/Gradle-> Run tests using: Gradle)
  • 右键单击项目导航器中的模块并选择Run test in [module name]
  • 完成后,左键单击顶部工具栏中创建的配置并选择Edit Configurations...
  • 在 Run 字段中,只需在第一个模块之后添加更多模块,例如,如果您想在模块 foo、bar 和 baz 中运行测试::foo:test :bar:test :baz:test --tests *
  • 重命名配置,例如Test Foo + Bar + Baz

现在您可以运行配置来执行您需要的测试。

于 2021-07-28T14:58:38.430 回答