現在、TeamCity でのプロジェクトのコンパイルと単体テストにかかる時間を短縮しようとしています。
現在、私のプロジェクトのビルドには約 5 ~ 8 分かかります。
それがすることは次のとおりです。
- 既存のファイルを消去する
- 各プロジェクトをコンパイルする
- インストーラーを作成する
それが完了すると、単体テストが開始され、実行に約 2 分かかります。
それがすることは次のとおりです。
- 既存のファイルを消去する
- 各プロジェクトをコンパイルする
- すべての単体テストを実行する
現在、単体テストの実行には 5 秒しかかからないため、クリーンとコンパイルのステップは約 2 分かかり、インストーラーの作成ステップは約 3 ~ 6 分かかります。
私の最初の質問は次のとおりです。単体テストを実行するときに、クリーンアップとコンパイルの手順を再度実行する必要がないように、チームシティを構成する方法はありますか? このようにした主な理由は、プロジェクトのビルドと単体テストを異なるビルド エージェントで実行できるためだと思います。
2 つ目の質問は、プロジェクトのビルドにかかる時間は 5 ~ 8 分でしょうか。ソリューション内のプロジェクトのコンパイルとインストーラーの作成を最適化する方法はありますか?
ビルドを最適化するか、そのままにしておくかの正しい方向に向けるのに役立つ追加の詳細があれば教えてください。
Nate からのいくつかの質問に答える更新:
TeamCity の外部でビルドを実行すると、単体テストの前にクリーン/コンパイルが再度実行されますか? いいえ、自分のマシンで実行するときに、ビルド スクリプトのどの部分を実行するかを指定できるためです。プロジェクトのビルドと単体テストの実行では、チームシティで異なる方法で指定される、クリーン、コンパイル、単体テストなどのセクションがあります。
もしそうなら、テストの前にビルドがそうしないようにすることはできますか? 現時点でこれを行っていない理由は、異なるビルド エージェントを使用すると、単体テストに必要なファイルが利用できず、失敗する可能性があるためです。
プロジェクトのビルドに何を使用していますか? プロジェクトのビルドには Nant、インストーラーには wix、単体テストとカバレッジ レポートには NUnit と NCover を使用します。
どのソース管理システムを使用していますか? 転覆