Программирование → Continuous Integration: установка и настройка Hudson+JUnit
Здравствуйте после долгой паузы. К сожалению, на протяжении этого времени ввиду разных обстоятельств мой блог был практически мертв, но, надеюсь довольно быстро наверстать упущенное (благо, тем хватает).
Этой статьей я хотел бы упрощенно (читать: «для новичков») рассказать о небольшой авантюре, которой на днях пришлось заниматься и более-менее подробно описать, как проще пройти через весь этот процесс без наступания на грабли, с которыми приходилось сталкиваться на протяжении тех двух ночей самому. А именно, речь будет идти о настройке системы непрерывной интеграции на упрощенном примере.
Этой статьей я хотел бы упрощенно (читать: «для новичков») рассказать о небольшой авантюре, которой на днях пришлось заниматься и более-менее подробно описать, как проще пройти через весь этот процесс без наступания на грабли, с которыми приходилось сталкиваться на протяжении тех двух ночей самому. А именно, речь будет идти о настройке системы непрерывной интеграции на упрощенном примере.
Django Framework → HowTo: continuous integration проекта на Django с помощью TeamCity
Введение
В процессе разработки, создавая новый функционал, всё чаще широкими мазками стал задевать старый код чем разрушал логику его работы. Это заставило всё-таки написать юнит и интеграционные тесты для старого кода и автоматизировать их запуск, т.к. гонять руками все тесты как-то грустно. Как раз вспомнилось недавнее руководство по CI Django в Jenkins и довольно старое по Webtest в Django. В итоге была совершена попытка поднять Дженкинса, но он как-то на моей убунте не взлетел и я грешным делом вспомнил про TeamCity. «Раз уж пишу в PyCharm и нашёл к нему подход, то, наверно, и TeamCity осилю, ведь конторка-то одна!» — подумалось мне… В общем-то я оказался прав, и, пока мне позволяет карма, решил подарить вам ультраполезный (и мегаподробный), в отличие от моего предыдущего, мануал :)
Итого: кому требуется руководство по поднятию интеграционного сервера TeamCity, и тестирование в нём Django проектов c тестами nose и webtest в виртуальном окружении python с автоматическим его (окружения) обновлением — добро пожаловать под кат.
Осторожно! Для работы TeamCity требуется (согласно документации) sun/oracle версия JVM…
Django Framework → Настройка Jenkins для django проекта с нуля
Всем привет.
Значительное время в нашем проекте использовалась самописная система интеграционного тестирования — чекаут кода по хуку в системе контроля версий, прогонка тестов с поддержкой отчётов по покрытию кода, запись результатов в отдельный html-файл, который был доступен разработчикам через веб. Естественно, потом пришлось делать поддержку локов, чтобы одновременно не запускалось сразу два тестирования и т. п.
В конце концов на ее поддержку стала уходить ощутимая часть рабочего времени, которая давно свела к нулю все преимущества простоты разработки такой системы, и было решено установить нормальный сервер Continuous Integration.
В качестве новой системы был выбран Jenkins, о его установке и настройке для django-проекта и пойдет речь в этой статье. Кто заинтересовался, добро пожаловать под кат.
Значительное время в нашем проекте использовалась самописная система интеграционного тестирования — чекаут кода по хуку в системе контроля версий, прогонка тестов с поддержкой отчётов по покрытию кода, запись результатов в отдельный html-файл, который был доступен разработчикам через веб. Естественно, потом пришлось делать поддержку локов, чтобы одновременно не запускалось сразу два тестирования и т. п.
В конце концов на ее поддержку стала уходить ощутимая часть рабочего времени, которая давно свела к нулю все преимущества простоты разработки такой системы, и было решено установить нормальный сервер Continuous Integration.
В качестве новой системы был выбран Jenkins, о его установке и настройке для django-проекта и пойдет речь в этой статье. Кто заинтересовался, добро пожаловать под кат.
.NET → FluentMigrator — система версионных миграций из песочницы

Здравствуйте. Что такое миграции и зачем они нужны хорошо рассказано в статье Версионная миграция структуры базы данных: основные подходы.
Я же хочу вам рассказать о системе версионных миграций: FluentMigrator. Почему мне нравится именно этот проект? Из-за приятного синтаксиса миграций и поддержки различных СУБД. Заинтересовались? Добро пожаловать под кат.
.NET → Написание автоматических тестов для тестирования пользовательского интерфейса десктопных приложений
В последние годы тема юнит-тестов, регрессивного тестирования, continuous integration, TDD, BDD, etc становится все популярней и все больше разработчиков начинают активно применять данные техники в своих проектах. При этом отдельным вопросом встает проблема автоматического тестирования пользовательского интерфейса в десктопных приложениях. В этой статье я постараюсь рассмотреть уже существующие решения, а так же привести вариант своего велосипеда написания тестов для UI на .net.
SQL → Версионная миграция структуры базы данных: основные подходы
Проблемы контроля версий баз данных и миграций между версиями уже не раз поднимались как на Хабре (1, 2, 3 и др.), так и в Интернете (преимущественно, англоязычном).В первом разделе этой статьи я рассматриваю основные проблемы, которые возникают в командах программистов при внесении любых изменений в структуру базы данных. Во втором разделе я попытался выделить основные общие подходы к тому, в каком виде изменения структуры базы данных можно хранить и поддерживать в процессе разработки.
Windows Phone → Автоматизация эмулятора Windows Phone 7
Всем привет,
В этой статье мы рассмотрим, как автоматизировать эмулятор Windows Phone 7 и какую пользу нам это принесёт в реальной жизни.

В этой статье мы рассмотрим, как автоматизировать эмулятор Windows Phone 7 и какую пользу нам это принесёт в реальной жизни.
DIY или Сделай Сам → LED монитор состояния Continuous Integration сервера из песочницы
Активное внедрение в компании Continuous Integraion серверов на основе Jenkins (fork Hudson-а) породило много разговоров о «красной лампе» — обычной такой лампе, которая бы стояла у руководителя разработки и сигнализировала в случае неуспешного билда. Интерес взял вверх, и в выходные перешел от слов к делу. В результате, получилось такое устройство:

Что оно умеет:
Построено оно на базе популярной платформы Arduino (точнее, его не менее популярного клона — Seeeduino).
Основная концепция устройства проста:

Что оно умеет:
- по USB подключаться к компьютеру;
- отслеживать статус шести проектов Jenkins;
- выводить информацию о текущем состоянии, используя 4 варианта индикации (два цвета по два режима работы).
Построено оно на базе популярной платформы Arduino (точнее, его не менее популярного клона — Seeeduino).
Основная концепция устройства проста:
- На рабочей машине запускается программа, которая слушает статус заданных проектов Jenkins;
- При изменении статуса, программа отправляет по UART (через Serial Port, он же COM порт) в Arduino определенный сигнал;
- Arduino принимает сигнал и включает соответсвующий светодиод в нужном режиме.
Тестирование → Hudson => Jenkins. Oracle не сдаётся
Вот и первая жертва корпорации Oracle. Любители continuous integration сервера Hudson недавно наблюдали неприятную историю переезда Hudson c серверов управляемых Oracle'ом. Oracle так просто не сдался. Разработчики признали, что право на название «Hudson» принадлежит Oracle и, чтобы не было проблем в будущем, решили переименовать проект. Предложенное название — Jenkins