PHP и контроль исходного кода: где поставить юнит-тесты и т. Д.? - PullRequest
1 голос
/ 27 апреля 2009

Я использую Bazaar для контроля версий, что меня очень устраивает. На базаре каждое дерево / проект в системе контроля версий называется «веткой».

В настоящее время у меня есть ветвь 'main' для реального приложения и ветвь 'dev', которая содержит некоторые вещи, такие как модульные тесты, а также руководство пользователя и т. Д. Таким образом, и приложение, и связанные с ним тесты версиями, но отдельно.

Однако я подозреваю, что то, как я это делаю, не самый лучший способ. Например, если бы я создавал ветки релизов из этой «основной» ветки, то эти ветки релизов не синхронизировались бы с модульными тестами, если я не разветвлял их так же.

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

Какой лучший способ сделать то, что я делаю? Если юнит-тесты идут в ту же «основную» ветвь, что и приложение, и если да, то какой удобный способ легко создать «снимок», то есть эквивалент «ежедневной сборки», которая содержит только файлы, которые будут распространяться вместе с приложение?

Спасибо всем за ответы. Трудно было решить, чей ответ принять. Решение, с которым я столкнулся, заключается в том, чтобы мои тесты находились в подкаталоге «tests» моего главного дерева; Я мог бы легко избавиться от этого позже, если бы не хотел распространять тесты.

Ответы [ 3 ]

6 голосов
/ 27 апреля 2009

Вы определенно хотите, чтобы ваши модульные тесты и код были как можно ближе. Процесс, которому мы следуем, таков:

libs/Core/Login.php
libs/Core/Process.php
libs/Core/t/LoginTest.php
libs/Core/t/ProcessTest.php

По сути, создайте модуль модульного тестирования для каждой части вашего кода и отделите его от реального кода, сохранив его в подкаталоге. Затем нужно что-то пройти, найти весь код модульного тестирования и запустить его, прежде чем приступить к работе.

1 голос
/ 28 апреля 2009

Как уже упоминалось, тесты относятся к определенной ветке. Если одна из ваших веток кода немного отличается, то ее тесты также должны соответствовать этому.

1 голос
/ 27 апреля 2009

Я бы поместил основной код и тесты в одну ветку, а затем удалил все, что вы считаете лишним, перед упаковкой.

Я думаю, что риск того, что ваши тесты не будут синхронизированы с основной работой по разработке, компенсирует усилия, необходимые для написания сценария, который будет очищать файлы, которые вы не хотите включать, перед отправкой клиентам. Тот факт, что Bazaar допускает множество простых веток, не означает, что вы хотите, чтобы ваши тесты слишком далеко уходили от кода.

...