2015-09-08 2 views
0

В настоящее время я пытаюсь понять, почему некоторые тесты интеграции терпят неудачу только на машинах Linux (и знают, что тестовый заказ влияет на результаты тестирования - это плохо).Как maven определяет порядок тестов, которые будут выполняться?

Когда я запускаю цель maven на машинах Windows, порядок тестовых классов в значительной степени сохраняется между прогонами и двумя разными машинами.

Когда я запускаю цель maven на машинах Linux, порядок тестовых классов отличается от Linux-машин (не проверялся для разных построений).

Как maven определяет порядок тестовых классов, которые будут выполняться?

EDIT: Я не пытаюсь контролировать порядок испытаний, но я пытаюсь определить, как специалист решает, что для того, чтобы запустить эти тесты, которые не нашли ответа в How do I control the order of execution of tests in Maven?

+0

Это не дубликат, если я не ошибаюсь. Я не хочу контролировать порядок тестов, но я спрашиваю, как maven решает, какой порядок. – neverendingqs

+0

Другой вопрос был решен, сказав, что его можно упорядочить по алфавиту. Этот вопрос спрашивает, что такое заказ по умолчанию. Я видел в Windows это всегда один и тот же порядок для всех разработчиков, но в Linux это обычно другое. – greyfairer

ответ

1

Там нет никакой гарантии в порядке в котором будет выполняться тест.

Не должно быть необходимости в проведении испытаний. Если вам нужно, чтобы тесты выполнялись по порядку, вы не пишете надлежащих тестов.

Вы в любой момент можете выполнить любой тест самостоятельно. Причиной этого является то, что, например, если вы создаете объект в одном тесте и используете его в другом тесте, если тест создания завершится неудачно, следующий тест по умолчанию не удастся.

+1

Согласовано. К сожалению, я пытаюсь исправить сборку, где это может быть не так. – neverendingqs

+0

Одна вещь, которую вы можете сделать, если вам нужен заказ: перед каждым испытанием сбросьте состояние. Затем в тестовом вызове все необходимые предварительные тесты, такие как методы, вам, к сожалению, придется иметь дело с любыми исключениями вручную. Затем выполните тестовый код. Если вы используете junit 4. *, вы можете посмотреть аннотацию '@ Before', чтобы сбросить состояние (оно выполняется перед каждым тестом) –

Смежные вопросы