我使用IntelliJ 2017.3来测量我的测试的代码覆盖率。代码库包含一些或多或少的愚蠢类,应该从这个测量中排除。我想排除所有包含Factory
作为其名称的一部分的类(例如:AverageOperatorFactoy
)并尝试使用*Factory
和.*Factory
模式(尽管这里似乎没有使用regex),但IntelliJ仍然在覆盖率报告中显示工厂。
如何排除名称模式的类?
我使用IntelliJ 2017.3来测量我的测试的代码覆盖率。代码库包含一些或多或少的愚蠢类,应该从这个测量中排除。我想排除所有包含Factory
作为其名称的一部分的类(例如:AverageOperatorFactoy
)并尝试使用*Factory
和.*Factory
模式(尽管这里似乎没有使用regex),但IntelliJ仍然在覆盖率报告中显示工厂。
如何排除名称模式的类?
2条答案
按热度按时间6jygbczu1#
我有同样的问题,使用一个非常基本的模式,如
虽然包括工作如预期,排除没有任何影响。
这似乎是IntelliJ中的一个已知问题。
如果你的项目中没有太多的包,你仍然可以做相反的事情,只包含那些你想要的包,同时使用几个活动的包含模式。
或者,你可以使用现在免费的IntelliJ插件Open Clover,它提供了比IntelliJ附带的更好的覆盖配置和结果浏览。
62lalag42#
从IntelliJ 2021.1.1开始,似乎接受了非常基本的正则表达式。在我自己的项目中,包
com.foo.bar.service.*
包含在覆盖选项中。可悲的是,这也包括了所有的测试类,我希望从报告中排除。要排除这些测试类,请手动添加其中一个。由于我的项目有测试类的命名标准,我可以将排除文本从
com.foo.bar.service.ClassTest
编辑为com.foo.bar.service.*Test
。这将从报告中排除所有测试类,并且不在覆盖率计算中包括它们。