【发布时间】:2019-09-24 18:01:34
【问题描述】:
我已经可以通过在我的 POM 文件的标签中添加它来排除带有声纳立方体报告的类。
<properties>
<java.version>1.8</java.version>
<sonar.exclusions>
/src/main/java/com/example/org/test/mainpackage/message/**/*
,
/src/main/java/com/example/org/test/mainpackage/security/jwt/**/*
,
/src/main/java/com/example/org/test/mainpackage/security/services/**/*
,
/src/main/java/com/example/org/test/mainpackage/controller/AuthRestAPIs.java
,
/src/main/java/com/example/org/test/mainpackage/controller/TestRestAPIs.java
</sonar.exclusions>
</properties>
但是,相同的代码在本地运行以测试代码覆盖率时根本不起作用。
在哪里可以使用 Maven 和 Spring Boot 以编程方式进行设置?
我已经可以通过
排除我想要的类设置 > 构建、执行、部署 > 排除 > [Class(es) to be 排除]
或通过
Edit Configurations > 选择 Code Coverage 选项卡 > 然后添加 我想被排除或仅包含在代码中的包或类 覆盖率报告。
我想要的是对要排除的类进行编码,即在 pom 文件中,就像我在排除声纳 qube 的代码时所做的那样。
为了简短。如何以编程方式执行此操作?
我想以编程方式执行此操作的原因是,我为排除在代码覆盖范围中报告的文件而执行的上述两个步骤是,我的所有项目中都没有包含可以推送到存储库中的文件,以便我对排除项所做的更改将反映在所有将从 git 存储库中提取的人身上。在没有添加任何文件或配置的情况下,我可以推送并反映到 repo 中的所有内容。这意味着我的排除项仅适用于本地,不适用于其他人。正确的?。所以在这里我要求一种以编程方式执行的方法,例如将排除项放入 POM 文件中。
【问题讨论】:
-
你的意思是你想用Java代码而不是POM文件来做?
-
是的,只要它以编程方式。顺便说一句,我已经通过 POM 文件做到了这一点,但它只适用于 Sonar Qubes Code Coverage 而不是本地。我的 IntelliJ 仍然报告代码覆盖率非常低。
-
我希望以编程方式完成此操作的原因是我不想每次都为了添加排除项而搜索项目的设置。此外,它似乎也不会在推送 git 时被结转因为当我通过 IntelliJs 运行配置或设置中的排除项进行排除时,我的项目中没有跟踪任何文件。因此,我想通过 POM 文件或以编程方式执行此操作,以便 git 跟踪排除,并且可以推送这将对那些从 repo 中提取的人生效。
-
it only worked for Sonar Qubes Code Coverage and not locally。没有办法知道(您的问题的编写方式)您的本地配置和服务器配置之间是否有任何区别。Not working at all应该是您在本地拥有的内容的描述。当地会发生什么?你有任何代码覆盖率吗?或者您是否涵盖了所有代码并忽略了声纳排除?你使用 Maven 配置文件吗?如果是,选择的配置文件在服务器和本地是否不同? -
在添加声纳的排除项之前,我在声纳和本地获得了几乎相同的代码覆盖率。但是,与现在一样,我在本地没有匹配的代码覆盖率报告,因为我的本地代码覆盖率报告仍然不排除我为声纳所做的类。我不知道如何以编程方式执行此操作以在本地排除相同的类。我不知道您所说的个人资料,但到目前为止这是我的问题。我在声纳中排除的代码覆盖率的类没有被 IntelliJ 的本地代码覆盖率报告排除。
标签: java spring maven spring-boot