Screen resolution in selenium tests in teamcity

Many developers and testers try to change screen resolution in teamcity service. Default screen resolution is 800×600, but its so small. As one of solution is to start teamcity agent like a simple application. But this solution is bad. Because you need to use one license on Windows Server and start teamcity agent after Windows server finished to boot.

I found a solution which allows you without hacks.

  1. Open services.msc. Open properties in teamcity agent service and check on checkbox Allow service to unteract with desktop.
  2. Open registry and change this key HKLM\SYSTEM\CurrentControlSet\Control\Windows\NoInteractiveServices to 0.
  3. Change Interactive Service Detection start mode to auto and start it.
    sc config UI0Detect start= auto
    sc start UI0Detect
  4. Connect to server using RDP.
  5. Enter this text command in commandline rundll32 winsta.dll,WinStationSwitchToServicesSession. RDP session will broken but it’s ok.

Thats all. When you will run a new end2end tests you see that screen resolution will increase.

Teamcity и Mssql dbproject без установки Visual Studio

Возникла необходимость на build сервере с Teamcity собирать DBProject. Если у вас нет желания устанавливать Visual Studio и SSDT Tools для сборки, то ниже будет решение. Данное решение позволит установить все необходимое для сборки на все агенты.

Итак, сначала просто скачайте через nuget последнюю версию тулзов. Сделать это можно даже не локальном компьютере, не обязательно это делать на build сервере.

Следущим шагом запакуем скачанный каталог Microsoft.data.tools.msbuild в zip архив и раскидаем по агентам Teamcity. Для этого в панели управления Teamcity переходим в Administration -> Tools и под Zip Archive жмем Install. Выбираем наш архив и дождемся заливки на все нужные агенты.


Теперь подключаемся к серверу по RDP (ну или через консоль) и добавим 2 параметра в переменные System Variables:

  • SQLDBExtensionsRefPath
  • SSDTPath

Оба значения выставить в C:\BuildAgent\tools\Microsoft.Data.Tools.Msbuild\Microsoft.Data.Tools.Msbuild\lib\net46. Естественно, если у вас агенты установлены по другому пути, то нужно выставить правильный путь.

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

 

 

Поменять параметр в билде, используя TeamCity API

В данной заметке приведу пример powershell скрипта, которым меняю настройки проекта используя API Teamcity. К сожалению у TeamCity нет нативного «интерфейса» через который это можно было было сделать. Простой пример. Предположим, у вас 2 TeamCity. Скажем, на первый это основной сервер. А на втором вы собираете всякие демо стенды. Также вы хотите что бы количество FXCOP warnings было не ниже чем на основном. Для этого последним шагом можно добавить скрипт, который дернет API и передаст нужное значение. Ниже пример на powershell, который передаст FXCOP warnings на другой сервер:

 

Установка второго агента TeamCity на сервер

Иногда более продуктивно установить на один сервер несколько агентов TC. Для этого:

  1. Качаем инсталлятор и запускаем установку. В процессе устновки нужно изменить путь(c:\buildagent2\) и снять галку с поля «установить сервис». В окне настройки поменять ownPort на другой.
  2. Редактируем файл c:\buildagent2\launcher\conf\wrapper.conf. Скроллим вниз и меняем имя сервиса, описание и тд.
  3. Переходим в каталог c:\buildagent2\launcher и выполняем в консоли команду ..\bin\service.install.bat от администратора.
  4. Запускаем второго агента
  5. Профит