新代码未显示新代码中的新代码

发布于 2025-01-28 03:10:40 字数 2280 浏览 3 评论 0原文

我试图用Junit Test Case涵盖代码的几行。 涵盖了我在调试测试案例后发现的线,但是在新代码的Sonarqube覆盖范围内,这些行未显示为

覆盖

     @Override
    public StandardMapper createMapper(Services services) {
        val objectMapper = ObjectMapperFactory.createObjectMapper();
        TransformerPool transformerPool = new TransformerPool(getTransformerPoolSize());
        try (RetryingTransporter retryingTransporter = new RetryingTransporter(
                new SoapTransporter(objectMapper,Configuration.class));
                ResponseGeneratorService responseGeneratorService = new ResponseGeneratorService(
                        JAXBContext.newInstance(Response.class));
                ConfigurationReader configurationReader = new ConfigurationReader();
                ParsingTransformer parsingTransformer = new ParsingTransformer(
                        new RequestTransformerService(transformerPool));) {
            return new StandardMapper(configurationReader, parsingTransformer, retryingTransporter,
                    responseGeneratorService);
        } catch (Exception e) {
            log.error(TransformerConstants.TRANSFORM + TransformerConstants.ERROR_101, e);
        }
        return null;
    }


    private int getTransformerPoolSize() {
        try {
            String poolSize = ((Function<String, String>) System::getenv).apply(TransformerConstants.TRANSFORMER_POOL_SIZE);
            return Integer.parseInt(poolSize);
        } catch (NumberFormatException nfe) {
            log.error(TransformerConstants.TRANSFORMER_POOL_INITIALIZATION_ERROR, nfe);
        }
        return TransformerConstants.DEFAULT_TRANSFORMER_POOL_SIZE;
    }

尽管测试案例

    @Test
   public void testCreateMapper_validTransformerPoolSize() throws Exception {

       restoreSystemProperties(() -> {
           withEnvironmentVariable(TransformerConstants.TRANSFORMER_POOL_SIZE, "7").execute(() -> {
               Assert.assertTrue(factory.createMapper(null) instanceof StandardMapper);
           });
       });
   }

。是通过并覆盖GetTransFormerPoolSize()方法的线路,但是当我在测试用例上方运行并将调试点放置在return integer.parseint(poolSize)上时;调试点出现在那里,但是在Sonarqube代码覆盖新代码中,它没有显示为涵盖的

return Integer.parseInt(poolSize); 

范围

I am trying to cover few lines of the code with junit test case. Though the test case is covering the lines which I found after debugging the test case, but in Sonarqube Coverage on new code those lines are not showing as covered ..

Below is the code :

     @Override
    public StandardMapper createMapper(Services services) {
        val objectMapper = ObjectMapperFactory.createObjectMapper();
        TransformerPool transformerPool = new TransformerPool(getTransformerPoolSize());
        try (RetryingTransporter retryingTransporter = new RetryingTransporter(
                new SoapTransporter(objectMapper,Configuration.class));
                ResponseGeneratorService responseGeneratorService = new ResponseGeneratorService(
                        JAXBContext.newInstance(Response.class));
                ConfigurationReader configurationReader = new ConfigurationReader();
                ParsingTransformer parsingTransformer = new ParsingTransformer(
                        new RequestTransformerService(transformerPool));) {
            return new StandardMapper(configurationReader, parsingTransformer, retryingTransporter,
                    responseGeneratorService);
        } catch (Exception e) {
            log.error(TransformerConstants.TRANSFORM + TransformerConstants.ERROR_101, e);
        }
        return null;
    }


    private int getTransformerPoolSize() {
        try {
            String poolSize = ((Function<String, String>) System::getenv).apply(TransformerConstants.TRANSFORMER_POOL_SIZE);
            return Integer.parseInt(poolSize);
        } catch (NumberFormatException nfe) {
            log.error(TransformerConstants.TRANSFORMER_POOL_INITIALIZATION_ERROR, nfe);
        }
        return TransformerConstants.DEFAULT_TRANSFORMER_POOL_SIZE;
    }

and test case for the above scenario is

    @Test
   public void testCreateMapper_validTransformerPoolSize() throws Exception {

       restoreSystemProperties(() -> {
           withEnvironmentVariable(TransformerConstants.TRANSFORMER_POOL_SIZE, "7").execute(() -> {
               Assert.assertTrue(factory.createMapper(null) instanceof StandardMapper);
           });
       });
   }

The above test case is passing and covers lines from getTransformerPoolSize() method but when I run above test case and put debugger point at return Integer.parseInt(poolSize); debugger points comes there but in sonarqube code coverage for new code it doesn't shows as covered ..

Below line from getTransformerPoolSize method is not getting covered even though Junit test case is covering that ..

return Integer.parseInt(poolSize); 

Can someone suggest how to fix this issue ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文