2013-08-12 3 views
0

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

Я думаю, что тестовая коробка - это Linux, но я не уверен. Я использую mocks в моем приложении Grails и задаюсь вопросом, может ли это вызвать путаницу в возвращаемых значениях.

Есть идеи?

EDIT: Мое приложение переводит XML-документ в новый XML-документ. Один из элементов в возвращаемом документе XML должен быть ПРОДУКТОМ, но возвращается как продукт.

Место, где установлен этот элемент, - это база данных в памяти, которая заполняется из сценария БД. Это тот же сценарий БД, который используется локально и в моей тестовой среде.

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

+3

Информация предоставлена ​​не достаточно. Пожалуйста, сообщите нам, какой именно тест проходит и не удается, и в каких ситуациях. Расскажите нам об окружающей среде, где были сделаны тесты. –

+0

Есть ли у вас какие-либо ссылки на систему в ваших тестах? например, чтение файла в ваших тестах? Как сказал Мэтт, вам нужно добавить дополнительную информацию. Например, ошибка, которую вы получаете в тестовом поле. – Alidad

+0

У меня были некоторые проблемы с разницей в разрывах, но, по словам Мэтта, информации недостаточно, чтобы дать ответ. –

ответ

0

Как и другие, на самом деле недостаточно информации, чтобы помочь получить твердый ответ. Несколько вещей, которые я хотел бы посмотреть на это:

  1. Если это интеграционные тесты, которые не удается, возможно, у вас есть некоторые «плохие тесты», которые зависят от определенных данных, которые не существуют в тестовой среде, Дженкинс бежит.

  2. Не существует гарантированной последовательности для выполнения тестового исполнения на машинах и платформах. Таким образом, вполне возможно, что тесты проходят для вас локально только потому, что они работают в определенном порядке и оставляют вещи издевательствами или настройкой данных из одного теста, который необходим в другом. Я написал плагин некоторое время назад (http://grails.org/plugin/random-test-order), чтобы помочь выявить эти проблемы. Я не обновлял плагин с Grails 1.3.7, поэтому он не может работать с приложениями 2.0+ grails.

  3. Если описанные выше шаги не идентифицируют проблему, зная какие-либо различия в том, как вы вызываете тесты на Jenkins vs. Local, было бы полезно. Например, если вы укажете конкретную среду grails (http://grails.org/doc/latest/guide/conf.html#environments) при работе на Jenkins и каковы различия между этим и окружением grails, используемым на вашем локальном.

+0

Я запускаю тесты на Test следующим образом: «clean -non-interactive» «test-app -unit -integration -non-interactive». Когда я запускаю тесты локально с той же командой, все они проходят. – TheCoder

+0

Я собираюсь попробовать ваш плагин. Я подозреваю, что это может быть проблемой. Мне было интересно, есть ли такой плагин. Хорошая работа от вас. – TheCoder

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