Отключить Spring Cloud Sleuth при запуске интеграционных тестов?

Когда используешь org.springframework.cloud:spring-cloud-gcp-starter-trace:1.0.0.RELEASE и выполняя мои интеграционные тесты локально, я получаю это сообщение об ошибке:

org.springframework.beans.factory.BeanCreationException: Ошибка при создании компонента с именем 'stackdriverSender', определенным в ресурсе пути к классу [org/springframework/cloud/gcp/autoconfigure/trace/StackdriverTraceAutoConfiguration.class]: сбой создания экземпляра компонента с помощью метода фабрики; вложенное исключение - org.springframework.beans.BeanInstantiationException: не удалось создать экземпляр [zipkin2.reporter.Sender]: фабричный метод 'stackdriverSender' вызвал исключение; Вложенное исключение - java.io.IOException: учетные данные приложения по умолчанию недоступны. Они доступны, если работают в Google Compute Engine. В противном случае переменная среды GOOGLE_APPLICATION_CREDENTIALS должна быть указана, указывая на файл, определяющий учетные данные. См. https://developers.google.com/accounts/docs/application-default-credentials для получения дополнительной информации.

Это вполне понятно, поскольку эта переменная окружения отсутствует локально, и я не хочу использовать трассировку Sleuth/Stackdriver при выполнении тестов. Я посмотрел в справочной документации, но я могу только найти информацию о том, как отключить Sleuth для определенных точек интеграции, таких как RxJava, RestTemplate и т. Д. Но как я могу полностью отключить Sleuth?

Я пытался установить spring.sleuth.enabled=false но это, похоже, не имеет никакого значения.

3 ответа

Как: отключить все тесты для реализации Webflux Sleuth с помощью Zipkin

Если у вас есть эти зависимости:

      implementation 'org.springframework.cloud:spring-cloud-starter-sleuth'
implementation 'org.springframework.cloud:spring-cloud-sleuth-zipkin'

Затем полностью отключите Sleuth / Zipkin для ваших интеграционных тестов, добавив application.yml в папку test / resources с помощью:

      spring:
  sleuth: # All sleuth features disabled for integration tests
    enabled: false
    reactor:
      enabled: false
    web:
      enabled: false
    async:
      enabled: false
      client:
        template:
          enabled: false
  zipkin: # All zipkin features disabled for integration tests
    enabled: false

Я действительно нашел ответ, посмотрев на источник для класса StackdriverTraceAutoConfiguration. Чтобы решить эту проблему, используя GCP, нужно установить spring.cloud.gcp.trace.enabled=false, Это отключает трассировку для всех точек интеграции.

Вы можете отключить отслеживание, ведение журнала и установить поддельный идентификатор проекта следующим образом:

spring.cloud.gcp.project-id=fake-project-id
spring.cloud.gcp.logging.enabled=false
spring.cloud.gcp.trace.enabled=false
Другие вопросы по тегам