Почему мои тестовые примеры JUnit показывают разные результаты при запуске как Test Suite и отдельного файла Junit - PullRequest
0 голосов
/ 24 января 2012

У меня есть набор тестовых файлов JUnit, а также файл набора тестов (класса Suite), который содержит ссылку на все отдельные тестовые файлы Junit.

Все они ориентированы на базу данных. Используемая база данных - Mysql, и я использую Eclipse IDE для запуска тестов.

При запуске каждого файла по отдельности я получаю правильное значение, и утверждение верное, но при запуске из набора тестов оно показывает другое значение.

Я сделал каждый тестовый файл JUnit для независимого доступа к базе данных с другим именем базы данных (даже если структура таблицы одинакова)

Нужно ли нам предотвращать параллельное выполнение тестовых случаев JUnit / необходимо проверять операторы, связанные с базой данных?

Ответы [ 2 ]

2 голосов
/ 24 января 2012

Я бы посоветовал вам изучить:

  • любые статические данные (одноэлементные, статические методы и т. Д ...)
  • порядок тестов (возможно, что некоторыетестов зависит от некоторых данных, которые другой тест создает, стирает или изменяет?)
  • если вы используете платформу, которая разрешает методы setUp или tearDown для всего набора, могут ли они каким-то образом нарушить отдельные тесты?
  • поскольку вы используете базу данных, возможно, что ваш код каким-то образом является транзакционным, но при запуске тестов в комплекте некоторые транзакции не фиксируются в нужное время (например, не раньше, чем закончится весь пакет))?
0 голосов
/ 24 января 2012

Это может произойти по двум причинам.

Во-первых, вы неправильно скомпилировали пакет, и некоторые тесты делят ресурсы с другими.

И другое: когда вы завершаете тест, вы не выполняете откат базы данных, поэтому следующий тест находит базу данных в ошибочном состоянии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...