Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
19 / 19 / 2
Регистрация: 13.07.2012
Сообщений: 164

JUnit валится при пакетном прохождении тестов

03.02.2016, 12:21. Показов 3208. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Столкнулся вот с такой вот аномалией. Есть пакет тестов, для методов отдельного класса вида
src/test/operations/testMethod1
src/test/operations/testMethod2
src/test/operations/testMethod3
Если проходить каждый тест отдельно, они все проходятся без ошибок. Но если запустить их нажав на пакете run tests in operations, большая часть тестов заваливается. Стал разбираться. Выполнил все тесты в той же последовательности что и idea, все зеленые. Запускаю, опять половина тестов завалилась. Стал дебагить первый валящийся тест, там ошибка распаковки zip файла - неверный заголовок. Программа работает с большим количеством файлов, в частности c zip, который много раз туда сюда пакует (на то есть свои причины). Подозрение пало но рассинхронизацию потоков jUnit и тестируемого класса. Т. е. архив на момент попытки обращения к нему из теста, находится еще в процессе создания. Не знаю как такое может быть,так как, как внутри устроен jUnit понимаю весьма поверхностно. Да и это не есть серьезная проблема, можно тестить и по отдельности, но глаза мозолит. У кого есть какие соображения на этот счет?

P. s jUnit4.12
P. p. s. подождать пока архив упакуется не получится, его размер всегда разный и очень трудно вычислимый.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.02.2016, 12:21
Ответы с готовыми решениями:

Запретить распарелеливание JUNIT тестов
Здравствуйте! Подскажите пожалуйста способ запретить распаралеливание тестов в одном из тест-файлов. Командой mvn -T 3 <goals>...

Запуск JUnit-тестов по 2 раза
Здравствуйте. Столкнулся с проблемой: юнит-ты запускаются по 2 раза. Есть 2 тестовых класса для бека и для фронта. При сборке gradle...

При удалении пользователя валится сервер
при удалении пользователя были выставлены следующие флаги: • Delete the mail database on the user’s home server • Delete mail replicas...

5
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
03.02.2016, 16:22
Serbis, когда падают тесты, обычно есть текст ошибки который говорит почему они упали. Так же в самом тесте можно писать логи чтобы понять что происходит.
0
19 / 19 / 2
Регистрация: 13.07.2012
Сообщений: 164
03.02.2016, 17:12  [ТС]
KEKCoGEN, после изменения метода распаковки, проблема с ним исчезла, но зато теперь мы пытаемся запаковать несуществующую папку, которая при завершении каждого теста, безошибочно пакуется и удаляется. И судя по выводу он это делает реально поперек другого потока так как исключения возникли только по двум файлам, а их в архиве 21. По отдельности все так же тестируется без единой ошибки. В тексте ошибки ничего особенного.
error.txt
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
03.02.2016, 17:51
Serbis, скорее всего вы запускаете тесты параллельно. Запускайте один за другим или перепишите тесты с учетом параллельности.
0
19 / 19 / 2
Регистрация: 13.07.2012
Сообщений: 164
03.02.2016, 18:39  [ТС]
KEKCoGEN, это насколько я понимаю должна на себя брать Intellij Idea, или зачем тогда представлена возможность пакетного запуска тестов. Получается это баг самой IDE?
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
03.02.2016, 20:18
Цитата Сообщение от Serbis Посмотреть сообщение
Получается это баг самой IDE?
не баг а фичер. Когда тесты бегут параллельно это уменьшает время за которое они бегут, а тестов может быть очень много. Баг в том что ваши тесты зависимы друг от друга \ используют общие ресурсы.

Так же IDE тут вообще не при чем. Тесты запускает junit. Гуглите настройку запрещающую параллельный запуск, но лучше перепишите ваши тесты.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.02.2016, 20:18
Помогаю со студенческими работами здесь

Почему валится Resin при установке кодировки
При использовании строчки <%@ page contentType='text/html;charset=windows-1251' %> в JSP вываливается ошибка ...

Валится svchost.exe при запуске системы
После установки софтины "МТС Коннект Менеджер" стал завершаться с "необработанным исключением" (чтение памяти) процесс svchost.exe,...

Программа валится при освобождении памяти под динамический массив
Доброго времени суток. Проблема такая. Моя программа представляет собой поразрядную сортировку даты вида dd.mm.yyyy, пока я тестирую только...

Ввод имени при прохождении теста
помогите делать ввод имени перед прохождением теста сделанного в делфи

При прохождении memtest вылазят ошибки
Мать Asus m5A97 LE r 2.0 Проц AMB FX-6100 Память 2х DDR3-1600 8gb corsair CMZ16GX3M2A1600C10 Проблема в том что при прохождении...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru