You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot3+Micrometer Tracing测试:SimpleTracer类型转换异常求助

问题解决:SimpleTraceContext 转 BraveTraceContext 类型转换异常

错误原因

你的应用同时引入了Micrometer Tracing的Brave桥接实现,且测试中手动注册了SimpleTracer测试组件,导致Spring上下文里同时存在两种Trace实现,在TraceContext传递时触发类型转换冲突。

解决方案

1. 排除Brave自动配置

在测试类上添加排除Brave自动配置的注解,阻止Brave相关组件加载:

@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT,
        exclude = {BraveAutoConfiguration.class})
@EnableAutoConfiguration(exclude = BraveAutoConfiguration.class)
@EnableTestObservation
class DemoApplicationTests {
    // 原有测试代码
}

2. 确保SimpleTracer Bean的优先级

在测试配置的SimpleTracer Bean上添加@Primary注解,保证它被优先注入:

@TestConfiguration
class ObservationTestConfiguration {

    @Bean
    @Primary
    SimpleTracer simpleTracer() {
        return new SimpleTracer();
    }

}

3. 调整依赖配置

如果生产依赖包含micrometer-tracing-bridge-brave,确保测试环境不会加载Brave实现:

  • Gradle示例:
implementation 'io.micrometer:micrometer-tracing-bridge-brave'
testImplementation 'io.micrometer:micrometer-tracing-test'

// 可选:排除测试依赖中的Brave桥接
testImplementation('io.micrometer:micrometer-tracing-test') {
    exclude group: 'io.micrometer', module: 'micrometer-tracing-bridge-brave'
}
  • Maven示例:
<dependency>
    <groupId>io.micrometer</groupId>
    <artifactId>micrometer-tracing-bridge-brave</artifactId>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>io.micrometer</groupId>
    <artifactId>micrometer-tracing-test</artifactId>
    <scope>test</scope>
    <exclusions>
        <exclusion>
            <groupId>io.micrometer</groupId>
            <artifactId>micrometer-tracing-bridge-brave</artifactId>
        </exclusion>
    </exclusions>
</dependency>

4. 简化测试配置(推荐)

直接使用Micrometer提供的@SimpleTracerTest注解替代自定义的@EnableTestObservation,它会自动配置SimpleTracer并排除其他Trace实现:

@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT)
@SimpleTracerTest
class DemoApplicationTests {
    // 原有测试代码
}

完成以上修改后,测试上下文将仅存在SimpleTracer相关组件,类型转换冲突即可解决。

内容的提问来源于stack exchange,提问作者Carlos Gonzalez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 12:17:54