gpt4 book ai didi

unit-testing - 带有 Sonar 的 Jenkins 上的 spring-test-mvc 问题

转载 作者:行者123 更新时间:2023-12-03 15:02:40 24 4
gpt4 key购买 nike

我最近发现了用于 MVC 测试的 Spring 项目:spring-test-mvc .这是一个很棒的工具,我计划在 future 更多地使用它。

但是我注意到我的 Jenkins CI 有问题。问题是当 MVC 集成测试在本地通过时,即使在 Jenkins CI 作业上,问题也发生在 Jenkins 的 Sonar 插件执行中。在这种情况下,我尝试使用“.andExpect()”方法完成的所有断言都失败了。是的,如果不使用 Sonar 插件,它们就会通过。

例如

this.mockMvc.perform(get("/someController/some.action").param("someParam", "someValue"))
.andExpect(status().isOk())
.andExpect(content().type(MediaType.APPLICATION_JSON))
.andExpect(request().sessionAttribute("someAttribute", notNullValue()));

在上面的测试中,内容类型和 session 属性断言失败了。
有任何想法吗?提前致谢。

最佳答案

这个问题是由 spring-mvc 的好心人解决的。可以在提供的 link 上找到更多详细信息.简而言之,就我而言,Sonar 使用 Cobertura 进行覆盖测试。

Cobertura adds the interface HasBeenInstrumented and because of that the class is decorated as a JDK dynamic proxy instead, which means a synthetic proxy class with one interface that's not very helpful since it's a Cobertura marker interface. As a result and the controller can never and no annotations can be properly discovered.



添加 proxy-target-class="true"解决问题至 <tx:annotation-driven>元素

关于unit-testing - 带有 Sonar 的 Jenkins 上的 spring-test-mvc 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10205775/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com