TeamCity オンプレミス 2024.03 ヘルプ

JetBrains dotCover

TeamCity は JetBrains dotCover のコンソールランナーにバンドルされています。バンドル版に加えて、JetBrains dotCover コマンドラインツールの別のバージョンをインストールしたり、管理 | ツールページを使用してデフォルトを変更したりできます。

ビルドステップの .NET カバレッジセクションで適切なオプションを選択すると、.NET プロジェクトのコードカバレッジを収集し、TeamCityWebUI 内のカバレッジ統計と詳細なカバレッジレポートを表示できます。

dotCover のライセンスがあり、開発者のマシンにインストールされている場合、TeamCity で収集されたカバレッジ結果をダウンロードして、TeamCity Visual Studio アドインを使用して Visual Studio 内で表示できます。

dotCover の設定

dotCover ホームへのパス

デフォルトの dotCover を使用する場合は、このフィールドを空白のままにします。追加でインストールされたバージョンのいずれかをデフォルトとしてマークできます。
または、ビルドエージェントにインストールされている dotCover へのパスを指定します。

フィルター

コードカバレッジ用の改改行コードのフィルタリストを指定します。+|-:assembly=*;type=**;method=*** を使用して、カバーされたアセンブリにアセンブリを含めたり除外したりします。

例: すべての MyDemoApp アセンブリに対してカバレッジを実行し、MyDemoApp.*.Tests に対しては実行しない場合は、カバレッジに対して次のアセンブリフィルターを指定します。
+:MyDemoApp.*
-:MyDemoApp.*.Tests

関連するブログ投稿(英語)も参照してください。

属性フィルター

ソリューション全体のカバレッジデータを知りたくない場合は、属性(たとえば、ObsoleteAttribute)でマークされたコードをカバレッジ統計から除外することができます。これらの属性フィルターを次の形式で指定するだけです。フィルターは改行で区切られたリストである必要があります。属性でマークされたコードをコードカバレッジから除外するには、-:attributeName 構文を使用する必要があります。必要に応じて、アスタリスク (*) をワイルドカードとして使用します。
dotCover 2.0 以降のみサポートされます。

追加引数

dotCover.exe に渡す追加のコマンドラインパラメーターの改改行コードリストを提供します。

dotCover カバレッジエンジンは、ラインカバレッジではなくステートメントカバレッジをレポートします。

異なるビルドでコンパイルしてテストする

一貫したカバレッジレポートを作成するには、dotCover はビルドチェックアウトディレクトリでソースファイルを見つけることができる必要があります。バイナリをビルドして同じビルドでカバレッジを収集する場合、または異なるビルドを使用しますが、スナップショット依存関係を使用する場合は簡単です。そして同じ VCS 設定と同じエージェント。

別のビルドでバイナリをビルドし、別のチェックアウト設定を使用して別のコードでコードカバレッジを収集する必要がある場合は、いくつかの追加のプロパティが必要です。以下のように仮定されます。

  • ビルド構成 A はコードをデバッグ情報でコンパイルし、アセンブリと .pdb ファイルでアーティファクトを作成します。

  • ビルド構成 B は、dotCover を有効にしてテストを実行し、A にスナップショット依存関係があります。

B のビルド結果のコードカバレッジタブにソースコードを表示するには、B を A と同じ VCS ルートにポイントして、適切な場所(チェックアウトルート)にソースコードを取得し、同じ場所からのビルドアーティファクトの依存関係を追加する必要があります。A のチェーン(dotCover が .pdb ファイルからソースへのパスを取得するため)。

また、TeamCity にソースコードの場所を教える必要があります。これを行うには、以下の手順を実行します。

  1. %teamcity.build.checkoutDir%teamcity.dotCover.sourceBase 構成パラメーターをコンパイル用ビルド構成 A に追加します。

  2. %dep.btA.teamcity.dotCover.sourceBase%=>%teamcity.build.checkoutDir% を使用して、構成パラメーター dotNetCoverage.dotCover.source.mapping をテスト構成 B に追加します。ここで、btA は、構成 A の実際の ID です。

スタンドアロン dotCover ランナー

バージョン 2024.03 以降では、.NET および NUnit ランナーで「.NET カバレッジ」を有効にするだけでなく、スタンドアロンの dotCover ランナーを使用して JetBrains dotCover を呼び出すこともできます。

DotCover Runner Settings

このランナーを使用すると、次のことが可能になります。

  • dotCover カバレッジプロファイルでプロセスを起動し、独自のスナップショットを生成します。

  • 前の手順で生成されたスナップショットを結合して、コードカバレッジタブに表示される統合レポートを作成します。

詳細については、dotCover を参照してください。

バンドル dotCover バージョン

TeamCity バージョン

dotCover バージョン

2018.1

2018.1.2

2018.2

2018.1.4

2019.1

2019.1.1

2019.2

2019.2.3

2020.1

2019.2.3

2020.2

2020.2.4

2021.1

2021.1.2

2021.2 ~ 2023.05

2021.2.2

2023.11

2023.2.2

2024.03 そしてさらに新しい

2023.3.3

サーバー管理 | ツールページで dotCover のインストールされたバージョンを見ることができます。バンドルされているバージョンがデフォルトとして設定されています。他のバージョンをインストールしてデフォルト設定を変更することができます。

クロスプラットフォーム dotCover

TeamCity は、クロスプラットフォーム JetBrains dotCover バージョン 2019.2.3+ をサポートすることにより、Linux および macOS 上の .NETCore プロジェクトのカバレッジを収集できます。

dotCover 2019.2.3 for Windows は TeamCity にバンドルされています。Windows 以外のプラットフォームでコードカバレッジを収集する必要がある場合は、管理 | ツールクロスプラットフォーム dotCover.GlobalTool(英語) を追加し、.NET ビルドステップで dotCover カバレッジを有効にします。Windows でもクロスプラットフォーム dotCover を使用する場合は、エージェントに .NET フレームワーク SDK 4.6.1+ がインストールされていることを確認してください。

コンテナーラッパー拡張機能を使用して、コンテナー内で dotCover コードカバレッジ分析を実行することもできます。

関連ページ:

エージェントツールのインストール

TeamCity では、エージェントツールは、ビルドエージェントにファイルをディストリビューションするためにのみ使用されるプラグインの一種です。エージェントツールは、ファイルのセットまたはバイナリディストリビューションにすることができます。そのクラスはランタイムにロードされません。TeamCity を使用すると、サーバー上で追加のツールをインストール / 削除し、オンデマンドでエージェントを構築するためにディストリビューションすることができます。ビルドエージェントが多数ある環境では、構成ファイル...

ビルド結果を扱う

TeamCity には、ホームと設定の 2 つの主要なモードがあります。ホームモードは、プロジェクトおよびビルド構成レベルでビルド結果を蓄積します。新しい TeamCity UI を使用している場合は、プロジェクトサイドバーを介してこの階層間を移動できます。各モードには、独自の詳細レベルがあります。プロジェクト全体のビルド統計を確認するには、プロジェクトホームにアクセスしてください。単一のビルド構成の詳細を参照するには、その名前をクリックしてビルド構成ホームを開きます。ホームページで特定のビルド...

依存関係を構築する

このページでは、例に基づいて、TeamCity で依存関係がどのように機能するかについての一般的な考え方を示します。依存関係の説明については、依存ビルドを参照してください。多くの場合、あるビルドの出力を別のビルドで使用するだけでなく、同じソースで複数のビルドを順次または並列に実行すると便利です。典型的な例を考えてみましょう。本番ビルドを取得する前に、Windows と macOS でテストする必要があるクロスプラットフォームプロジェクトがあります。この単純なケースに最適なワークフローは次のとおり...

VCS チェックアウト規則

VCS チェックアウトルールを使用すると、設定された VCS ルートの一部をチェックアウトし、バージョン管理からビルドエージェントのビルドチェックアウトディレクトリ内のサブディレクトリにディレクトリをマップできます。したがって、リポジトリ全体の VCS ルートを定義し、各ビルド構成にその関連部分のみをチェックアウトするように指示できます。チェックアウトルールは、UI に表示されるビルドの変更と、エージェント上のビルドでチェックアウトされるファイルに影響します。コミットがビルドの VCS ルートの...

ビルド結果ページ

TeamCity では、ビルドに関するすべての情報は、キューに入れられているか、実行中であるか、終了しているかにかかわらず、ビルド結果ページに蓄積されます。このページには、ビルド構成ホームページから、ホームモードで参照しているときに、ビルド番号またはビルドステータスがリンクとして表示される TeamCity UI のさまざまな場所からアクセスできます。一部のデータは、ビルドが終了した後にのみアクセスできます。変更、パラメーター、依存関係などの詳細は、キューで待機しているビルドにも適用できます。こ...

.NET

TeamCity には、.NET ビルドステップ、ビルドエージェントでの .NET 検出、リポジトリ内のビルドステップの自動検出を提供する .NET ツールチェーンの組み込みサポートが付属しています。このページでは、.NET ランナーの構成について詳しく説明します。チュートリアルとデモについては、このブログ投稿シリーズを参照してください。要件:.NET ランナーを使用するには、ビルドエージェントマシンに次のソフトウェアをインストールする必要があります。.NET CLI コマンド (クロスプラットフ...