【发布时间】:2012-07-13 05:22:10
【问题描述】:
如何同时运行两个或多个 IDEA 模块的所有测试?
我正在使用许多模块,并且经常运行所有单元测试很重要,当我选择运行多个文件夹时,上下文菜单上不再有“运行”选项。
【问题讨论】:
标签: testing intellij-idea
如何同时运行两个或多个 IDEA 模块的所有测试?
我正在使用许多模块,并且经常运行所有单元测试很重要,当我选择运行多个文件夹时,上下文菜单上不再有“运行”选项。
【问题讨论】:
标签: testing intellij-idea
最佳方式:(3年后修改)
还有更好的方法来实现这一点。来自JetBrains JUnit Run Configuration docs:
选择菜单“运行”→“编辑配置...”。单击左上角的绿色加号并选择 JUnit。
选择“测试种类”到“模式”,并输入您所看到的正则表达式:^(?!.*IT$).*$(它以插入符号^ 开头,以美元结尾$)。此正则表达式表示:所有未以 IT 名义完成的测试。
注意: 正则表达式将匹配限定的文件名,从而也很容易被模块/包排除。如果您的集成测试被分组在一个包com.me.integrationtests 中,则匹配此包中所有内容的正则表达式将是^(?!.*com\.me\.integrationtests.*).*$。
选择“搜索测试”到“在整个项目中”。工作目录应设置为顶层模块工作目录(默认设置)。
为您的测试输入一个名称,例如“所有单元测试”。我也更喜欢标记“共享”选项,这样这个配置以后就不会消失了。单击应用并确定。
您可以试验这个正则表达式以满足您的需要。
原答案:
这是可行的,虽然它不舒服。
test/java 目录并“运行所有测试”。它会创建测试配置。通过这种方式,您可以按顺序运行配置,并且每个配置都会获得一个新选项卡。不过,总比没有好。
【讨论】:
你必须创建一个“运行配置”:
【讨论】:
选择所有模块,右键单击它们并选择运行所有测试。这将创建一个名为 “Whole Project” 的配置,您可以随时再次运行该配置。
我发现这比接受的答案更好,因为这会为每个模块单独运行单元测试。如果您的测试用例在其运行时使用特定于模块的资源,那么公认答案的最佳方法将不起作用。
选择所有模块
右键单击并选择运行所有测试
获取新的运行配置
【讨论】:
这对我来说适用于具有多个模块的项目。
创建一个新的 JUnit 运行/调试配置。 测试类型:“全包” 搜索测试:“整个项目”
您还必须指定一个工作目录。
【讨论】:
另一个不太明显的情况是多个项目需要代码覆盖。天真的解决方案是选择多个项目并一次在其中运行所有单元测试。事实证明,如果类路径更改并且 IntelliJ 每个运行配置只有一个类路径条目,则单元测试可能会失败。在这种情况下,按顺序对项目运行单元测试实际上就足够了。这是因为在每次运行结束时 IntelliJ(2017.2.5 社区版)都会询问收集的覆盖率是否应该替换或应该添加到以前收集的覆盖率统计信息中。
【讨论】:
如果你使用 Gradle 并且有多个模块,你可以这样做:
Settings/Build, Execution, Deployment/Build Tools/Gradle -> Run tests using: Gradle)Run test in [module name]
Edit Configurations...
:foo:test :bar:test :baz:test --tests *
Test Foo + Bar + Baz
现在您可以运行配置来执行您需要的测试。
【讨论】: