この記事では、テストの概念を紹介し、さまざまな種類のテストを使用してコードを検証する方法について説明します。 .NET CLI や統合開発環境 (IDE) など、.NET アプリケーションをテストするためにさまざまなツールを使用できます。
テストの種類
自動テストは、アプリケーション コードが作成者の意図した動作を確実に行うための優れた方法です。 この記事では、単体テスト、統合テスト、ロード テストについて説明します。
単体テスト
単体テストは、"作業単位" とも呼ばれる個々のソフトウェア コンポーネントまたはメソッドを実行するテストです。単体テストでは、開発者のコントロール内のコードのみをテストする必要があります。 インフラストラクチャの問題はテストされません。 インフラストラクチャの問題には、データベース、ファイル システム、ネットワーク リソースとの対話が含まれます。
単体テストの作成の詳細については、「 テスト ツール」を参照してください。
統合テスト
統合テストは、2 つ以上のソフトウェア コンポーネントが一緒に機能する機能 ("統合" とも呼ばれます) を実行するという点で単体テストとは異なります。これらのテストは、テスト対象のシステムの広い範囲で動作しますが、単体テストでは個々のコンポーネントに焦点を当てています。 多くの場合、統合テストにはインフラストラクチャの問題が含まれます。
ロード テスト
ロード テストは、システムが指定された負荷を処理できるかどうかを判断することを目的としています。 たとえば、アプリケーションを使用する同時実行ユーザーの数と、対話を応答性よく処理するアプリの機能などです。 Web アプリケーションのロード テストの詳細については、「 ASP.NET Core の負荷/ストレス テスト」を参照してください。
テストに関する考慮事項
テストを記述するための ベスト プラクティス があることに注意してください。 たとえば、 テスト 駆動開発 (TDD) は、確認するコードの前に単体テストを記述する場合です。 TDD は、書籍を書く前にアウトラインを作成するようなものです。 単体テストは、開発者が、よりシンプルで読みやすく、効率的なコードを記述するのに役立ちます。
テスト ツール
.NET でテストを実行する場合、テスト プラットフォームとテスト フレームワークという 2 つのコンポーネントが関係します。
テスト プラットフォーム
テスト プラットフォームは、テストを実行し、IDE との通信チャネルとして機能するエンジンです。 たとえば、Visual Studio は、テスト エクスプローラーで使用可能なテストを表示できるように、検出要求をテスト プラットフォームに送信できます。 テスト プラットフォームは、検出されたテストで IDE に応答します。 テストの実行でも同様の通信が行われます。
VSTest は .NET で長年使用されており、エコシステムで唯一のテスト プラットフォームでした。 2024 年の初めに、 Microsoft.Testing.Platform (MTP) と呼ばれる新しいテスト プラットフォームの最初の安定したバージョンがリリースされました。
テスト フレームワーク
テスト フレームワークは、テスト プラットフォーム上に構築されています。 テスト作成者として使用できる属性と API のセットを定義します。 通常、テスト アダプターを使用します。テスト アダプターは、テスト フレームワークとテスト プラットフォームの間の通信層として機能します。 一般的なテスト フレームワークは、MSTest、NUnit、TUnit、および xUnit.net です。
MSTest
MSTest は、すべての .NET 言語の Microsoft テスト フレームワークです。 これは拡張可能であり、.NET CLI、Visual Studio、Visual Studio Code、および Rider で動作します。 VSTest と Microsoft.Testing.Platform の両方がサポートされています。
詳細については、次のリソースを参照してください。
- MSTest での Microsoft.Testing.Platform のサポート (MSTest ランナー)
- C を使用した単体テスト#
- F を使用した単体テスト#
- Visual Basic を使用した単体テスト
NUnit
NUnit は、すべての .NET 言語の単体テスト フレームワークです。 当初、NUnit は JUnit から移植され、現在の運用リリースは多くの新機能と幅広い .NET プラットフォームのサポートで書き換えられました。 これは .NET Foundation のプロジェクトです。 VSTest と Microsoft.Testing.Platform の両方がサポートされています。
詳細については、次のリソースを参照してください。
- NUnit (NUnit ランナー) での Microsoft.Testing.Platform のサポート
- C を使用した単体テスト#
- F を使用した単体テスト#
- Visual Basic を使用した単体テスト
TUnit
TUnit は完全に Microsoft.Testing.Platform 上に構築されており、VSTest をサポートしていません。 詳細については、TUnit のドキュメントを参照してください。
xUnit.net
xUnit.net は、.NET 用の無料のオープン ソースのコミュニティに重点を置いた単体テスト ツールです。 NUnit v2 の元の発明者は、xUnit.net を書きました。 xUnit.net は、.NET アプリを単体テストするための最新のテクノロジです。 ReSharper、CodeRush、および TestDriven.NET でも機能します。 xUnit.net は .NET Foundation のプロジェクトであり、その行動規範の下で動作します。 VSTest と Microsoft.Testing.Platform の両方をサポートしています
詳細については、次のリソースを参照してください。
- xUnit.net v3 での Microsoft.Testing.Platform のサポート
- C を使用した単体テスト#
- F を使用した単体テスト#
- Visual Basic を使用した単体テスト
テストを実行する
.NET コマンドライン インターフェイス (CLI)
. NET CLI と dotnet test コマンドを使用して、ソリューション内のすべてのテスト プロジェクトから単体テストを実行できます。 .NET CLI では、 統合開発環境 (IDE) が ユーザー インターフェイスを通じて利用できる機能の大部分が公開されています。 .NET CLI はクロスプラットフォームであり、継続的インテグレーションと配信パイプラインの一部として使用できます。 .NET CLI は、スクリプト化されたプロセスと共に使用され、一般的なタスクを自動化します。
井手
Visual Studio、Visual Studio Code、または Rider のどちらを使用している場合でも、機能をテストするためのグラフィカル ユーザー インターフェイスがあります。 IDE には CLI よりも多くの機能があります ( Live Unit Testing など)。 詳細については、「 Visual Studio を使用したテストの組み込みと除外」を参照してください。
こちらも参照ください
詳細については、次の記事を参照してください。
.NET