2015-09-09 3 views
-1

Я использую JUnit для покрытия кода в моем проекте. Для db я использую dbunit как ложный DB. Когда я запускаю JUnit из Eclipse UI, его получение проходит, но его получение не удается при запуске через maven.JUnit терпят неудачу при обновлении с JDK 1.6 до JDK 1.8 в maven, но его работы в eclipse

Выше настройки работает отлично в JDK 1.6.25, используя maven и его начальный сбой при обновлении до 1.8.51. Я обновил плагин компилятора maven, его не работает. Я использую ниже версий, junit - 4.7 2.dbunit - 2.4.8 hsqldb - 2.0.0 maven - 2.2.1.

+0

Не задавайте такие вопросы, как «могли бы вы помочь мне в этом?». Ответ на такой вопрос - да: весь смысл StackOverflow - помочь людям с вопросами, связанными с программированием. Задайте конкретный вопрос, который подотчетен. Мы не можем ответить на вопрос, который просто говорит: «У меня несколько тестов не удается». –

+0

Спасибо за вашу информацию !!! @JBNizet – Dhiyaneswaran

ответ

0
   Issue: 

-> Все тестовые случаи, которые бежали хорошо в JAVA 1.6, созданные неудачу по переходу на JDK 1.8.51. -> Из-за этого мы столкнулись с проблемой сбоя сборки, а также с сокращением покрытия кода.

  Root Cause: 

-> JUnit использует отражение Java для получения методов тестирования из классов испытаний. В методе метода тестирования JAVA 1.6 возвращен так же, как объявление в исходном файле. -> Но с JAVA 7 и далее порядок методов, возвращаемый JVM, не такой же, как исходный файл, он будет возвращен случайным образом. -> Поскольку наши тестовые примеры зависят друг от друга, из-за изменения заказа он начал сбой. Для примера ниже тестовых случаев используют одни и те же данные (Mock БД) для выполнения, -> AddOperationTestCase() -> EditOperationTestCase() -> DeleteOperationTestCase() Если удаление запустить первый из-за виртуальной машины Java в случайном порядке, для Добавление и изменение данные не будут доступны, это не удастся.

  Solution : 

-> Я пытался найти варианты в JUnit и верный плагин для поддержания такой же порядок, как, как исходный файл, но я не мог найти возможности там. -> Я определил класс, который вернет порядок выполнения в библиотеке JUnit и переопределит его, чтобы выполнить его порядок исходного файла. -> На данный момент я добавил эту оболочку аннотации к неудавшимся классам, теперь сборка выполняется успешно.

Ссылка для класса Wrapper: https://somethingididnotknow.wordpress.com/2014/03/07/run-junit-tests-in-order/