Sonarqube Sonar可能会抱怨单元测试未涵盖记录器
我的公司开始使用SonarQube。 我看到它抱怨单元测试没有涵盖包含记录器的代码,例如:Sonarqube Sonar可能会抱怨单元测试未涵盖记录器,sonarqube,Sonarqube,我的公司开始使用SonarQube。 我看到它抱怨单元测试没有涵盖包含记录器的代码,例如: LOGGER.debug("All sub merchants have been evicted from cache."); 我们如何通过单元测试记录器进行覆盖 还有一个代码示例: @Override @TriggersRemove(removeAll = true, cacheName = TRUNCATE_PARAMS_CACHE_NAME, keyGen
LOGGER.debug("All sub merchants have been evicted from cache.");
我们如何通过单元测试记录器进行覆盖
还有一个代码示例:
@Override
@TriggersRemove(removeAll = true, cacheName = TRUNCATE_PARAMS_CACHE_NAME,
keyGenerator = @KeyGenerator(name = CACHE_KEY_GENERATOR,
properties = @Property(name = "includeMethod", value = "false")))
public void evictAll() {
LOGGER.info("Evicting all truncation candidates");
}
}
Sonar将记录器出现的行标记为未被单元测试覆盖。Sonar抱怨没有记录确切的异常 这将发出警告:
LOGGER.debug("All sub merchants have been evicted from cache.", e);
我有这段代码,它也被标记为uncovered,我想这不是它。}catch(DataAccessException e){//发生机械错误。LOGGER.error(“查询子搜索数据时出错。”,e);抛出新的RuntimeException(e);}您能发布准确的Sonar消息吗?代码示例也会有所帮助。您是否将JaCoCo与声纳一起使用?因为这看起来像是代码覆盖率警告,这意味着您应该在一个单元测试中覆盖该分支/异常,但主要的问题是,我应该如何准确地用junit涵盖包含logger的行?您确定消息是关于logger的,而不是单元测试未涵盖的catch子句中的代码块吗?你能试着用其他代码行代替记录器代码行并检查警告是否仍然存在吗。为了通过单元测试覆盖它,您必须使代码的任何部分都能够抛出异常,从而实际抛出异常并验证结果。您能否澄清一下,您是要求帮助您在单元测试中覆盖异常,还是根本不使用单元测试,并希望了解它们?