Задать вопрос
@sergnosov1

Как правильно организовать разработку (python git тестирование virtualenv)?

Как правильно ? :
1) Сначала писать тесты (все случаи), комит, пуш. Потом писать код, комит, пуш. Тестировать, менять основной код, комит, пуш. ?
или 2) Сначала писать основной код, комит, пуш. Потом по очереди добавлять тесты и тестировать и менять основной код после добавления нового теста. Комит, пуш после каждого добавления теста и каждого изменения кода. ?
И я так понимаю ветка мастер должна быть пустая до полного окончания написания пакета или изначально в ней может быть какой-то код не рабочий и частично рабочий, например отдельные модули пакета?
Как часто комитить и пушить? Если модуль маленький, больше тестов чем кода, есть разница? Стоит комитить сразу весь модуль если он не большой?
В гите только requirements.txt хранится?, и обновлем его каждый раз при добавлении в код новой зависимости, или делаем его одним махом в конце разработки пакета(модуля)?
И классы с юнит тестами хранить в том же модуле где и код или отдельно и потом туда их импортировать и запускать через if __name__ ....?
  • Вопрос задан
  • 676 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 1
@deliro
Почитай gitflow и TDD with Python и вопросы отпадут сами собой.

обновлем его каждый раз при добавлении в код новой зависимости

Да. Иначе как твои тиммейты будут узнавать, что ты обновил джангу с 1.6 до 1.10? Напишешь им каждому в чатик?

И классы с юнит тестами хранить в том же модуле где и код или отдельно и потом туда их импортировать и запускать через if __name__ ....?

Нет разницы.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
sim3x
@sim3x
tdd flow
spoiler
2da3f8ee7a63429484c27297479644a6.png


У питона есть https://docs.python.org/3/library/unittest.html - не нужно придумывать велосипеды

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

$cat requirements.txt
-r requirements/production.txt
psycopg
....

$ cat requirements/dev.txt
-r requirements/base.txt
ipython
....

$ cat requirements/base.txt
Django
....


git flow
spoiler
b66e7a34e49d43b1a58bd35533659001.png
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы