Хадсон CI не может достичь MySQL Server - PullRequest
1 голос
/ 22 июля 2011

У меня есть несколько модульных тестов, которые должны подключаться к MySQL Server для получения или изменения данных (я знаю, что это больше похоже на интеграционные тесты, но пока не будем вдаваться в подробности). Полный набор тестов NUnit проходит без проблем как в графическом интерфейсе NUnit, так и в консоли NUnit.

Сейчас я автоматизирую наш процесс сборки с помощью Hudson Continuous Integration. Как часть этого я представил эту пакетную команду, которая будет вызывать консоль NUnit для выполнения тестов сразу после построения полного решения:

"C:\Program Files (x86)\NUnit 2.5.10\bin\net-2.0\nunit-console.exe" /framework:net-4.0  Tests\MyTestProject\bin\Debug\MyTestProject.dll /xml=MyTestProject.dll.xml /config:Debug
exit 0

Это должно работать, но я получаю исключение для всех тестов, которые подключаются к серверу базы данных:

MySql.Data.MySqlClient.MySqlException: невозможно подключиться к любому из указанных хостов MySQL.

Так что Хадсон просто не может добраться до MySQL Server, даже если строка подключения такая же, как если бы я выполнял тесты вручную. Между прочим, Хадсон и сервер находятся в одной машине, что на самом деле и является моей коробкой для разработчиков. Кроме того, несколько тестов, которые не нуждаются в базе данных, пройдут без проблем.

Почему Хадсон не может добраться до MySQL Server?

ОБНОВЛЕНИЕ: Не все тесты дают сбой, а только те тесты, которые используют строку подключения, для которой требуется общая память, например:

server=localhost;user id=root;pooling=false;persist security info=true;connection reset=true;allow user variables=true;password=;protocol=sharedmemory; shared memory name=MYSQL

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

Ответы [ 2 ]

1 голос
/ 22 июля 2011

Установите /trace=Debug для nunit-console.exe, возможно, вы увидите больше информации о том, что происходит под капотом

0 голосов
/ 23 июля 2011

Итак, похоже, я наконец-то заставил это работать. Вам просто нужно запустить Hudson из командной строки, а не как службу Windows:

java -jar hudson.war

Я не вижу проблем с подключением к MySQL, даже для подключений с общей памятью. Все тесты проходят. Кроме того, я не упомянул, что я использую MySQL Server из консоли, а не как службу Windows.

Еще один способ заставить эту работу запустить Hudson и MySQL Server в качестве служб Windows, но вам нужно будет изменить учетную запись Hudson на ту, которую вы используете для входа на свою машину.

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