4

この質問の一種のスピンオフ。それらをソースツリーに保持しますか? それらをソース管理に保管していますか?

テストケースがファイルを参照している場合、ファイルはシステムの動作仕様の一部であるため、システムの現在のバージョンに関連付けられているため、ソース管理にチェックインする必要があると考えています。しかし、ローカルでチェックアウトする必要はないと思います。ローカルでチェックアウトする必要はなく、非常に大きくなる可能性があるからです。したがって、プロジェクトのコード ファイルが $svn/Code/foo/bar/baz にある場合、関連するテスト データ ファイルが $svn/TestData/foo/bar/baz にあるような、並列ツリーを持つことに傾いています。後者は、ある種の一般的なテスト データ ヘルパー クラス (ファイルをローカルにキャッシュする可能性がありますか?) を使用してサーバーから直接アクセスされます。これは理にかなっていますか?

そもそもテストのために外部ファイルをどれだけ広範囲に使用する必要があるかという関連する質問があると思います。高レベルの「受け入れ」テストに適していることが多いと思います。

4

4 に答える 4

7

私たちは、「すべてがソース管理下に置かれる」という考え方に賛同しています (私たちのことを、肛門保持という言葉で説明することさえできません)

つまり、当社が担当するすべてのレベルのテスト (ユニット、システム、統合、翻訳など) のテスト ケース (コードとデータ)、開​​発ソフトウェアの CD/DVD イメージ、OS イメージ、テスト環境用の VM、すべてdoco, 基本的に、チーム内のすべての PC とソフトウェアが盗まれた場合に開発/テスト環境をまとめるために必要なすべてのもの - ハードウェアを除く. -)。

ディスク容量は、必要なものすべてを再調達するのにかかる時間よりもはるかに安価です. ソフトウェアのバージョンが公開されると、そのバージョンの構築に必要なすべてを実際にチェックし、複数の DVD に焼き付けて、未使用のハードウェアでプロセスをテストします。それから複数枚作って宇宙の四隅に配る……おっと、すいません、調子に乗りました。

しかし、ビルド DVD は複数の地理的に離れた場所 (宇宙全体ではなく地球上) に配布されますが、私が述べたことはすべて実行します。

ソース管理ツリーのどこに行くかというと、ツリーのトップ レベルは常にバージョンであり、そのバージョンに関係するすべてのものがその下に存在します。これにより、大規模な重複が発生しますが、管理が非常に簡単になります。また、一般的に、ディスク ストレージは人的資源よりもはるかに安価です。

于 2009-08-03T03:50:19.923 に答える
4

しかし、ローカルでチェックアウトする必要はないので、ローカルでチェックアウトする必要はないと思います

なぜだめですか?テストは、複雑なソフトウェア システムの不可欠な部分です。データなしで実行できない場合、それらは役に立たなくなります。

必要に応じてテスト データをリモートで取得するというアイデアは興味深いものですが、テストを実行するだけの場合は、Subversion サーバーへの接続に依存することになります。シンプルにすべきことが、不必要に複雑になると思います。テストの実行が開発のボトルネックになることは決してありません。

これに加えて、2 つの異なる svn ツリーを維持しなければならないという事実を考慮する必要があるかもしれません。複数の機能ブランチとリリースまたはタグがある場合、これは悪夢になる可能性があります。

あなたの質問に明確に答えるために、テスト ファイルを <project root>/tests に保存して、各ブランチに独自の機能する便利なテスト セットを用意します。

于 2009-08-03T03:53:24.643 に答える
1

最新のコードを簡単に取得してテストを実行できるように、テスト データはテストおよびソースと同じツリーでバージョン管理する必要があると確信しています。私は次のようにツリーを設定しました。

trunk/
  +- Source/
  +- TestSource/
  \- TestData/

次に、テストは ../TestData/myTestData.xml または必要なものを参照します。

于 2009-08-03T03:55:11.177 に答える
0

この方法でソース管理に追加します

- Trunk
     - Source
     - Lib
     - Tests
         - DescriptiveTestName_1
         - DescriptiveTestName_2
- Branches
     - v0.9
         - Source
         - Lib
         - Tests

このようにして、すべてのファイル ソース、ライブラリ、およびテストが各バージョンにまとめられ、開発 (および問題の修正) の際に簡単に理解できるようになります。テスト対象の各サブディレクトリには、テストに必要なすべてのファイルが含まれています。

于 2009-08-03T03:38:28.260 に答える