3

現在、TeamCity でのプロジェクトのコンパイルと単体テストにかかる時間を短縮しようとしています。

現在、私のプロジェクトのビルドには約 5 ~ 8 分かかります。

それがすることは次のとおりです。

  1. 既存のファイルを消去する
  2. 各プロジェクトをコンパイルする
  3. インストーラーを作成する

それが完了すると、単体テストが開始され、実行に約 2 分かかります。

それがすることは次のとおりです。

  1. 既存のファイルを消去する
  2. 各プロジェクトをコンパイルする
  3. すべての単体テストを実行する

現在、単体テストの実行には 5 秒しかかからないため、クリーンとコンパイルのステップは約 2 分かかり、インストーラーの作成ステップは約 3 ~ 6 分かかります。

私の最初の質問は次のとおりです。単体テストを実行するときに、クリーンアップとコンパイルの手順を再度実行する必要がないように、チームシティを構成する方法はありますか? このようにした主な理由は、プロジェクトのビルドと単体テストを異なるビルド エージェントで実行できるためだと思います。

2 つ目の質問は、プロジェクトのビルドにかかる時間は 5 ~ 8 分でしょうか。ソリューション内のプロジェクトのコンパイルとインストーラーの作成を最適化する方法はありますか?

ビルドを最適化するか、そのままにしておくかの正しい方向に向けるのに役立つ追加の詳細があれば教えてください。

Nate からのいくつかの質問に答える更新:

TeamCity の外部でビルドを実行すると、単体テストの前にクリーン/コンパイルが再度実行されますか? いいえ、自分のマシンで実行するときに、ビルド スクリプトのどの部分を実行するかを指定できるためです。プロジェクトのビルドと単体テストの実行では、チームシティで異なる方法で指定される、クリーン、コンパイル、単体テストなどのセクションがあります。

もしそうなら、テストの前にビルドがそうしないようにすることはできますか? 現時点でこれを行っていない理由は、異なるビルド エージェントを使用すると、単体テストに必要なファイルが利用できず、失敗する可能性があるためです。

プロジェクトのビルドに何を使用していますか? プロジェクトのビルドには Nant、インストーラーには wix、単体テストとカバレッジ レポートには NUnit と NCover を使用します。

どのソース管理システムを使用していますか? 転覆

4

2 に答える 2

3

#1 について: TeamCity の外部でビルドを実行すると、単体テストの前にクリーン/コンパイルが再度実行されますか? もしそうなら、テストの前にビルドがそうしないようにすることはできますか?

プロジェクトのビルドに何を使用していますか? どのソース管理システムを使用していますか?

考慮すべきもう 1 つのオプションは、複数のビルド構成を持つことです。私の職場では、いくつかの構成があります。各コミット後に実行されるもの。クリーン/コンパイルといくつかの簡単なテストを行います。次に、クリーン/コンパイルとすべてのテストを実行する夜間構成を作成します。あなたはそのようなことをすることができますか?

于 2009-07-17T02:05:01.657 に答える
1

経験則として、コミット時にトリガーされるビルドは可能な限り短くする必要があります。そのため、ビルド構成をスリムなコミットビルドにリファクタリングし、現在の構成を1時間ごとに実行する必要があります。

于 2009-08-03T21:48:55.320 に答える