IntelliJ - 从测试覆盖率报告中排除某些类(包)

Xor*_*rty 26 intellij-idea test-coverage

我目前正在使用Java与Play框架.我有JUnit测试,我试图用IntelliJ覆盖运行器测量覆盖率.

不幸的是,Play会生成一些垃圾类,IntelliJ会在报告中包含它们.有没有办法从覆盖率报告中排除某些模式?

y2k*_*ham 13

为@MichalD 答案添加图示

  1. 右键单击您的tst包裹并单击Modify Run Configuration... 在此输入图像描述

  2. Code Coverage部分中,单击Modify options>Exclude classes and packages 在此输入图像描述 在此输入图像描述

  3. +然后通过单击该小图标来选择要排除的类或包

    • 请注意,此处的包级包含/排除对话框将向您显示一个合并的包视图(将您在当前项目中添加的所有包中的路径/类融合在一起),因此可能会有点混乱

在此输入图像描述


小智 11

您可以通过编辑正在执行的测试(测试)的运行配置来指定将哪些类添加到覆盖率数据中。

选择测试后,单击“编辑配置”,打开“代码覆盖率设置”选项卡,在“记录覆盖率数据的包和类”中,您可以从包含在覆盖率记录中的生产代码中缩小包的范围。

  • 有没有办法排除包?那是最初的问题。我有很多包,其中一个包含生成的代码并且正在污染覆盖率指标。我宁愿不必每次添加新包时都不断更新运行设置 (10认同)
  • 允许正则表达式,甚至在“代码覆盖率设置”用户界面中进行多个选择将会有很大帮助。 (3认同)

Voj*_*cka 5

从 Idea 2022.3 开始,也可以忽略基于注释的方法。它非常灵活,因为您可以在设置中定义哪些注释应该意味着该方法被忽略。您可以创建新注释并使用它或使用现有注释(例如来自框架的注释)。

\n

这可以配置在

\n
Settings / Preferences \xe2\x86\x92 Build, Execution, Deployment \xe2\x86\x92 Coverage\n
Run Code Online (Sandbox Code Playgroud)\n

在此输入图像描述

\n

更多详细信息,请参阅本公告IntelliJ IDEA 2022.3 EAP 2:改进的 IntelliJ Profiler、更快的 IDE 启动等

\n