从多个模块一起在IntelliJ IDEA中运行单元测试

时间:2012-07-13 10:57:12

标签: testing intellij-idea

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

我使用了很多模块,经常运行所有单元测试非常重要,当我选择运行多个文件夹时,上下文菜单上就没有“运行”选项了。

7 个答案:

答案 0 :(得分:89)

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

甚至有更好的方法来实现这一目标。

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

  2. 选择“测试种类”为“模式”并完全按照您的意见输入此正则表达式:^(?!.*IT$).*$(以插入符^开头,以美元$结尾) 。这个正则表示:所有未在其名称中以IT结束的测试

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

  4. 输入您的测试名称,例如“所有单元测试”。我也喜欢标记“共享”选项,以便此配置不会在以后消失。单击“应用”,然后单击“确定”。

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

    原始回答:

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

    1. 选择第一个模块,右键单击test/java目录和“运行所有测试”。它创建了测试配置。
    2. 选择“编辑配置”并在新创建的配置上选中“共享”,以便保存。
    3. 选择第二个模块,“运行所有测试”,并在此配置上选中“共享”。
    4. 在“发布前”部分,单击“+”并选择“运行其他配置”,然后选择第一个模块的配置。
    5. 这样您就可以按顺序运行配置,并且每个配置都会获得一个新选项卡。仍然,总比没有好。

答案 1 :(得分:20)

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

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

答案 2 :(得分:5)

对我而言,这两种解决方案都无效或无法正常工作。

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

演示文稿 - > - > 数据

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

我的设置如下:

enter image description here

答案 3 :(得分:2)

我找到的最简单的方法是选择所有模块,右键单击它们,然后选择运行所有测试。这将创建一个名为“整个项目” 的配置,您可以随时再次运行它。

我发现这比接受的答案要好,因为这可以为每个模块分别运行单元测试。如果您的测试用例在运行时使用特定于模块的资源,那么公认的最佳答案将无法正常工作。

选择所有模块

Select all modules

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

Right click and choose to run all tests

获取新的运行配置

Get a new run configuration

答案 4 :(得分:1)

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

答案 5 :(得分:1)

这对于具有多个模块的项目很有效。

创建一个新的JUnit运行/调试配置。 测试种类:“全包” 搜索测试:“整个项目”

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

答案 6 :(得分:0)

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

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

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