Исключение зависимостей из пути к классам для TestNG - PullRequest
0 голосов
/ 29 июня 2018

Context

Я пишу юнит-тесты, используя TestNG в Spring Tools Suite / Eclipse с плагином TestNG для eclipse. В рамках одного из этих тестов я проверяю, что правильный вывод журнала создается с использованием библиотеки slf4j-test (https://projects.lidalia.org.uk/slf4j-test/)

Обнаружена ошибка совместимости:

SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in 
[jar:file:/C:/Users/****/.m2/repository/ch/qos/logback/logback- 
classic/1.2.3/logback-classic- 
1.2.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in 
[jar:file:/C:/Users/****/.m2/repository/uk/org/lidalia/slf4j- 
test/1.1.0/slf4j-test-1.1.0.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an 
explanation.
SLF4J: Actual binding is of type 
[ch.qos.logback.classic.util.ContextSelectorStaticBinder]

Чтобы использовать эту библиотеку, мне нужно исключить logback при выполнении моих тестов из-за известных проблем совместимости с библиотекой slf4j-test. Я сделал это, добавив следующее в мой pom:

        <plugin>
          <artifactId>maven-surefire-plugin</artifactId>
          <configuration>
            <classpathDependencyExcludes>
              <classpathDependencyExcludes>ch.qos.logback:logback-classic</classpathDependencyExcludes>
            </classpathDependencyExcludes>
          </configuration>
        </plugin>

Задача

Когда я запускаю 'mvn test', все тесты выполняются нормально, и исключение происходит, как и ожидалось. Тем не менее, когда я хочу запустить отдельный тест с использованием плагина TestNG для eclipse (щелкните правой кнопкой мыши класс теста -> запустить как -> TestNG Test), чтобы я мог видеть результаты теста и охват в IDE, тесты прерываются из-за совместимости проблема между библиотеками.

Вопрос

Как я могу исключить эту зависимость из пути к классам так, как она исключается из 'mvn test', когда я хочу запускать эти тесты по отдельности с помощью плагина TestNG?

...