2009-04-27 12 views
1

私はバージョンコントロールのためにBazaarを使用しています。これはとても満足しています。 Bazaarでは、ソース管理のすべてのツリー/プロジェクトを「ブランチ」と呼びます。PHPとソース管理:ユニットテストなどをどこに置くの?

現在、私は実際のアプリケーションのための 'メイン'ブランチと、ユニットテストのようないくつかのものとユーザマニュアルなどを格納する 'dev'ブランチを持っています。この方法では、appとそれに関連するテストはバージョン管理されていますが、

しかし、私はそれをやっている方法が最良の方法ではないと考えています。たとえば、もし私がその 'main'ブランチからリリースブランチを作成すると、これらのブランチは同じ方法でブランチしない限り、単体テストと同期しなくなります。

現在のところ、アプリケーションのスナップショットを作成するために、そのメインブランチからすべてのファイルをエクスポートし、それらを圧縮します。そのブランチのツリーには、送信されるアプリケーションの一部ではないものがないためですクライアントに。

私がやっていることをするにはどうすればよいでしょうか?単体テストがアプリと同じ「メイン」ブランチに入るべきかどうか、もしあれば、簡単にスナップショットを作成する便利な方法は何ですか?つまり、配布されるファイルのみを含む「毎日のビルド」に相当します。アプリ?

ありがとうございました。受け入れる答えを決めるのは難しいです。私が行った解決策は、私のメインツリーの 'tests'サブディレクトリ内にテストを置くことです。テストを配布したくない場合は、後で簡単に削除することができます。

答えて

6

ユニットテストとコードを可能な限り近づけたいと思っています。私たちが従うプロセスは、されています。基本的に、あなたのコードの各部分のためのユニットテストモジュールを作成し、サブディレクトリにそれを維持することにより、実際のコードから分離

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

。次に、何かを通過させて、ユニットテストコードをすべて見つけて、それを実動前に実行します。

+0

あなたの答えをありがとう、それはきちんとした提案です。だからあなたはあなたのアプリを出荷するとき(またはパブリックサーバにアップロードするとき)、すべての 't'サブディレクトリを取り除くだけですか? – thomasrutter

+0

私たちはすべて一緒にしていますが、私はそれを取り除く必要があることが分かりました。 – lennysan

1

メインコードとテストを1つのブランチに置き、パッケージ化する前に余分だと思われるものを削除します。

テストを主な開発作業と同期させないと、クライアントに出荷する前に含めたくないファイルをクリアするスクリプトを作成するのに必要な労力を軽減できます。 Bazaarがたくさんの簡単なブランチを許可しているからといって、あなたのテストがコードからあまりにも離れすぎてしまわないようにしたいというわけではありません。

1

他のテストで述べたように、テストは特定のブランチに属します。あなたのコードブランチの1つがわずかに異なる場合、テストはおそらくそれに一致するはずです。

関連する問題