1

私はバージョン管理に Bazaar を使用していますが、これには非常に満足しています。Bazaar では、ソース管理のすべてのツリー/プロジェクトは「ブランチ」と呼ばれます。

現在、実際のアプリケーション用の「main」ブランチと、単体テストやユーザー マニュアルなどを収容する「dev」ブランチがあります。このようにして、アプリとそれに関連するテストの両方がバージョン管理されますが、別々に。

しかし、私がやっている方法は最善の方法ではないと思います。たとえば、その「メイン」ブランチからリリース ブランチを作成した場合、同じ方法でブランチを作成しない限り、これらのリリース ブランチは単体テストと同期しなくなります。

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

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

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

4

3 に答える 3

6

単体テストとコードをできる限り近づけたいと思うことは間違いありません。私たちが従うプロセスは次のとおりです。

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

基本的に、コードの各部分に対して単体テスト モジュールを作成し、それをサブディレクトリに保持して実際のコードから分離します。次に、本番環境にプッシュする前に、すべての単体テスト コードを見つけて実行します。

于 2009-04-27T05:01:05.633 に答える
1

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

于 2009-04-28T05:51:00.340 に答える
1

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

テストが主要な開発作業と同期しなくなるリスクは、クライアントに出荷する前に含めたくないファイルを消去するスクリプトを作成するために必要な労力を相殺すると思います. Bazaar が多くの簡単な分岐を許可しているからといって、テストをコードから遠ざけたいというわけではありません。

于 2009-04-27T05:03:44.707 に答える