首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Jenkins上使用Sonar进行spring-test-mvc测试的问题

在Jenkins上使用Sonar进行spring-test-mvc测试的问题
EN

Stack Overflow用户
提问于 2012-04-18 16:38:22
回答 2查看 2K关注 0票数 6

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

然而,我在我的Jenkins CI上发现了一个问题。问题是,当MVC集成测试在本地通过时,甚至在Jenkins CI作业上,问题发生在Jenkins的Sonar插件执行中。在这种情况下,我尝试使用".andExpect()“方法完成的所有断言都失败了。是的,如果没有使用Sonar插件,它们会通过。

例如

代码语言:javascript
复制
this.mockMvc.perform(get("/someController/some.action").param("someParam", "someValue"))
    .andExpect(status().isOk())
    .andExpect(content().type(MediaType.APPLICATION_JSON))
        .andExpect(request().sessionAttribute("someAttribute", notNullValue()));

在上面的测试中,内容类型和会话属性断言都失败了。有什么想法吗?提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-16 15:40:07

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

JDK添加了接口HasBeenInstrumented,因此该类被装饰为

动态代理,这意味着只有一个接口的合成代理类没有太大帮助,因为它是Cobertura标记接口。因此,控制器永远不能,也没有注解可以被正确发现。

通过在<tx:annotation-driven>元素中添加proxy-target-class="true"来解决这个问题

票数 0
EN

Stack Overflow用户

发布于 2016-07-13 03:03:21

我也面临着同样的问题。我们将Cobertura jar版本升级到最新版本。这一更改使得JUnit测试用例既可以在本地运行,也可以在Jenkins中运行

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10205775

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档