Intellij Idea 如何通过名称模式从IntelliJ代码覆盖率中排除文件?

hfwmuf9z  于 2023-04-05  发布在  其他
关注(0)|答案(2)|浏览(151)

我使用IntelliJ 2017.3来测量我的测试的代码覆盖率。代码库包含一些或多或少的愚蠢类,应该从这个测量中排除。我想排除所有包含Factory作为其名称的一部分的类(例如:AverageOperatorFactoy)并尝试使用*Factory.*Factory模式(尽管这里似乎没有使用regex),但IntelliJ仍然在覆盖率报告中显示工厂。

如何排除名称模式的类?

6jygbczu

6jygbczu1#

我有同样的问题,使用一个非常基本的模式,如

com.example.myproject.somecode.*

虽然包括工作如预期,排除没有任何影响。
这似乎是IntelliJ中的一个已知问题。
如果你的项目中没有太多的包,你仍然可以做相反的事情,只包含那些你想要的包,同时使用几个活动的包含模式。
或者,你可以使用现在免费的IntelliJ插件Open Clover,它提供了比IntelliJ附带的更好的覆盖配置和结果浏览。

62lalag4

62lalag42#

从IntelliJ 2021.1.1开始,似乎接受了非常基本的正则表达式。在我自己的项目中,包com.foo.bar.service.*包含在覆盖选项中。可悲的是,这也包括了所有的测试类,我希望从报告中排除。
要排除这些测试类,请手动添加其中一个。由于我的项目有测试类的命名标准,我可以将排除文本从com.foo.bar.service.ClassTest编辑为com.foo.bar.service.*Test。这将从报告中排除所有测试类,并且不在覆盖率计算中包括它们。

相关问题