У меня есть две машины, один сервер интеграции Continuus и одна машина разработчика.
Обе машины работают с одинаковыми версиями java, maven и grails, и обе они работают под управлением Ubuntu.
Единственное отличие, о котором я могу думать, это то, что CI находится в виртуализированной среде.
Некоторые доказательства:
CI Java-версия
java version "1.6.0_24"
Java(TM) SE Runtime Environment (build 1.6.0_24-b07)
Java HotSpot(TM) 64-Bit Server VM (build 19.1-b02, mixed mode)
DEV Java-версия
java version "1.6.0_24"
Java(TM) SE Runtime Environment (build 1.6.0_24-b07)
Java HotSpot(TM) 64-Bit Server VM (build 19.1-b02, mixed mode)
CI mvn -version
Apache Maven 2.2.1 (rdebian-1)
Java version: 1.6.0_24
Java home: /usr/lib/jvm/java-6-sun-1.6.0.24/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux" version: "2.6.32-31-server" arch: "amd64" Family: "unix"
DEV mvn -version
Apache Maven 2.2.1 (rdebian-1)
Java version: 1.6.0_24
Java home: /usr/lib/jvm/java-6-sun-1.6.0.24/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux" version: "2.6.32-31-generic" arch: "amd64" Family: "unix"
CI Grails
Welcome to Grails 1.3.7 - http://grails.org/
Licensed under Apache Standard License 2.0
Grails home is set to: /usr/local/lib/grails-1.3.7
DEV grails
Welcome to Grails 1.3.7 - http://grails.org/
Licensed under Apache Standard License 2.0
Grails home is set to: /home/netbrain/dev/apps/grails-1.3.7
Я сделал чистую проверку из системы управления версиями на обеих машинах и удалил папки ~/.m2
и ~/.ivy2
, чтобы избежать каких-либо несоответствий.
Когда я запускаю grails test-app
на моем CI-сервере, 6 тестов кажутся неудачными. Когда они в моей системе DEV все проходят в одном и том же случае.
CI Grails Test-App
Tests Completed in 28213ms ...
-------------------------------------------------------
Tests passed: 14
Tests failed: 6
-------------------------------------------------------
DEV Grails test-app
Tests Completed in 25889ms ...
-------------------------------------------------------
Tests passed: 20
Tests failed: 0
-------------------------------------------------------
Когда я смотрю на сообщения об ошибках, которые я получаю из результатов теста, я вижу такие вещи:
junit.framework.AssertionFailedError: expected:<1> but was:<0>
not-null property references a null or transient value
Насколько я вижу, тесты логически верны, и они не должны получать эти ошибки, особенно когда несколько тестов, которые получают ошибку "переходного значения", ничего не сохраняют в базе данных!
Для меня кажется, что проблема заключается где-то в комбинации фазы гибернации / памяти-базы данных / теста.
Должна быть некоторая разница между средами, которые вызывают эту проблему. У кого-нибудь есть какие-либо советы о том, как я могу продолжить, чтобы решить проблему дальше?
Еще раз спасибо!
EDIT
Хорошо, вот что я попробовал:
- удалить папки
~/.m2
, ~/.ivy2
, ~/.grails
- чистить грааль
- run grails test-app
Но я все еще вижу неудачные тесты в моей среде CI, но не на компьютере разработчика.
РЕДАКТИРОВАТЬ
Некоторые новые разработки ..
Я попытался запустить только те тесты, которые не были выполнены на CI, и кажется, что при запуске grails test-app :integration path.to.failing.tests
они все PASS ! во время работы grails test-app вызывает эти тесты на FAIL! : (
Я совершенно сбит с толку и не понимаю, что здесь происходит ...