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/
Не задавайте такие вопросы, как «могли бы вы помочь мне в этом?». Ответ на такой вопрос - да: весь смысл StackOverflow - помочь людям с вопросами, связанными с программированием. Задайте конкретный вопрос, который подотчетен. Мы не можем ответить на вопрос, который просто говорит: «У меня несколько тестов не удается». –
Спасибо за вашу информацию !!! @JBNizet – Dhiyaneswaran