Как зайти в Даркнет?!
25th January, 01:11
6
0
Как в tkinter из поля ввода Entry получить значение в одну переменную и обновить строку кнопкой, затем получить ещё одно введённое значение и затем сложить их. Ниже пример кода
21st July, 19:00
895
0
Программа, которая создает фейковые сервера в поиске игровых серверов CS 1.6 Steam
21st March, 17:43
948
0
Очень долго работает Update запрос Oracle
27th January, 09:58
914
0
не могу запустить сервер на tomcat HTTP Status 404 – Not Found
21st January, 18:02
905
0
Где можно найти фрилансера для выполнения поступающих задач, на постоянной основе?
2nd December, 09:48
938
0
Разработка мобильной кроссплатформенной военной игры
16th July, 17:57
1724
0
период по дням
25th October, 10:44
3955
0
Пишу скрипты для BAS только на запросах
16th September, 02:42
3720
0
Некорректный скрипт для закрытия блока
14th April, 18:33
4613
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
4381
0
Помогите пожалуйста решить задачи
24th November, 23:53
6086
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
4351
0
Нужно решить задачу по программированию на массивы
27th October, 18:01
4396
0
Метода Крамера С++
23rd October, 11:55
4309
0
помогите решить задачу на C++
22nd October, 17:31
4002
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
4492
0
Python с нуля: полное руководство для начинающих
18th June, 13:58
2599
0
Система непрерывной интеграции для кодовой базы Python
Я начинаю работать над хобби-проектом с кодовой базой Python, и я хотел бы создать некоторую форму непрерывной интеграции (т. е. запуск батареи тест-кейсов каждый раз, когда производится регистрация и отправка электронных писем nag ответственным лицам, когда тесты терпят неудачу), подобную CruiseControl или TeamCity .
Я понимаю , что могу сделать это с помощью крючков в большинстве VCSes, но для этого требуется, чтобы тесты выполнялись на той же машине, что и сервер управления версиями, что не так элегантно, как хотелось бы. Есть ли у кого-нибудь предложения по небольшой, удобной для пользователя системе непрерывной интеграции с открытым исходным кодом, подходящей для кодовой базы Python ?
Один из вариантов - Хадсон. Он написан в Java, но есть интеграция с Python проектами:
Впрочем, сам я никогда не пробовал.
(Обновление, Сентябрь. 2011: после спора о товарном знаке Hudson был переименован в Jenkins .)
Мы запускаем Buildbot-Trac на работе. Я не использовал его слишком много, так как моя кодовая база еще не является частью цикла выпуска. Но мы проводим тесты в разных средах (OSX/Linux/Win), и он отправляет электронные письма — и это написано в Python.
Второй Buildbot - Trac интеграции. Дополнительную информацию об интеграции можно найти на веб-сайте Buildbot . На моей предыдущей работе мы написали и использовали плагин, который они упоминают (tracbb). Плагин переписывает все URL-адреса Buildbot, чтобы вы могли использовать Buildbot изнутри Trac. (http://example.com/tracbb).
Действительно хорошая вещь о Buildbot заключается в том, что конфигурация написана в Python. Вы можете интегрировать свой собственный код Python непосредственно в конфигурацию. Кроме того, очень легко написать свой собственный BuildSteps для выполнения конкретных задач.
Мы использовали BuildSteps для получения источника из SVN, извлечения зависимостей, публикации результатов тестирования в WebDAV и т. д.
Я написал интерфейс X10, чтобы мы могли посылать сигналы с результатами сборки. Когда сборка не удалась, мы включили красную лаву lamp. Когда сборка завершилась успешно, включилась зеленая лава lamp. Благополучные времена :-)
Мы используем как Buildbot, так и Hudson для разработки Jython. Оба они полезны, но имеют разные сильные и слабые стороны.
Конфигурация Buildbot-это чистый Python и довольно простой, как только вы освоитесь с ним (посмотрите на созданную epydoc API docs для получения самой актуальной информации). Buildbot упрощает определение задач, не связанных с тестированием, и распределение тестировщиков. Однако на самом деле у него нет концепции отдельных тестов, только текстовые, HTML и итоговые выходные данные, поэтому, если вы хотите иметь многоуровневый просматриваемый тестовый вывод и т. д., вам придется построить его самостоятельно или просто использовать Hudson.
Hudson имеет потрясающую поддержку для детализации от общих результатов до наборов тестов и отдельных тестов; он также отлично подходит для сравнения результатов тестирования между сборками, но распределенный материал (master/slave) сравнительно сложнее, потому что вам также нужна среда Java на подчиненных устройствах; кроме того, Hudson менее терпим к слоистым сетевым связям между ведущим и ведомым устройствами.
Итак, чтобы получить преимущества обоих инструментов, мы запускаем один экземпляр Hudson, который ловит общие ошибки тестирования, а затем делаем многоплатформенную регрессию с помощью Buildbot.
Вот наши примеры:
TeamCity имеет некоторую интеграцию Python .
Но TeamCity есть:
- не с открытым исходным кодом
- не маленький, а скорее многофункциональный
- это бесплатно для малых и средних команд.
У меня есть очень хороший опыт работы с Travis-CI для небольших кодовых баз. Основными преимуществами являются:
- настройка выполняется менее чем за половину экрана конфигурационного файла
- вы можете сделать свою собственную установку или просто использовать бесплатную версию хостинга
- полуавтоматическая настройка для репозиториев github
- нет необходимости в учетной записи на веб-сайте; вход через github
Некоторые ограничения:
Python не поддерживается в качестве языка первого класса (на момент написания статьи; но вы можете использовать pip и apt-get для установки зависимостей python; см. Этот учебник )
код должен быть размещен на github (по крайней мере, при использовании официальной версии)