フッターコンテンツにスキップ
.NETヘルプ

Test Console Application C# (開発者向けの仕組み)

テストは、アプリケーションの品質を保証する上で重要な要素として、ソフトウェア開発の分野で重要な役割を果たします。 利用可能な多数のフレームワークの中で、.NETはWindowsベースのアプリケーションを作成するための広く採用されている選択肢として際立っています。 この記事では、.NETアプリケーションをテストするために特別に設計されたツールである.NET TestConsoleの詳細を掘り下げます。

この探求を通じて、.NET TestConsoleの実際の実装を示す包括的なコード例を書いていきます。 さらに、.NET TestConsoleとシームレスに統合された優れたC# PDFライブラリであるIronPDFに光を当てます。 このライブラリは非常に価値があり、開発者が.NETTestConsole環境内でPDFを簡単にアクセスおよび生成できるようにします。 .NET TestConsoleとIronPDFのC# PDF機能のシナジーにより生まれる機能性と可能性を解き明かすこの旅にご参加ください。

1. はじめに: TestConsole

TestConsoleは、C#プログラミング言語のユニットテストに独特なアプローチを導入する多目的なテストライブラリです。 従来のユニットテストの方法は、大きなデータセットや複雑なアサーションに対処する際にしばしば困難に直面し、予想される結果と実際の結果の相違を特定するのが困難になります。 これに応じて、TestConsoleは新しいワークフローを提供し、従来の予測ベースのアプローチから、フォーマットされた出力を指定された"承認済み"の標準出力バージョンと並べて比較する方法に転換します。

このライブラリでは、特にTestConsoleを使用することで、'.Core'バリアントは元のTestConsoleプロジェクトから継承されたフォーマット機能を拡張し、期待値から逸脱するテスト結果のシナリオで重要なテスト承認機能を組み込んでいます。 TestConsole.Coreはビルドサーバーとシームレスに統合され、テストの失敗をトリガーします。 開発PCでは、デフォルトでインストールされたファイル比較ユーティリティーを使用して差異を可視化するための再構成が可能です。 特にこのアプローチは承認プロセスを効率化し、開発者が差異が予想される場合に承認済みバージョンを手動で更新できるようにします。

1.1. なぜTestConsoleを使用するのか?

TestConsole.CoreはApprovalTestsからインスピレーションを受けていますが、フルフレームワークと.NET Coreのテストスイートをサポートすることで違いを示しています。 ライブラリは多様な環境でのテストの必要性に対処しており、発表時点でApprovalTestsが主にフルフレームワークのシナリオに対応していたことによって生じたギャップを埋めています。 TestConsole.Coreの構文はApprovalTestsと類似点を共有していますが、特にファイル比較ツールの選択やコンテンツの直接承認に関しては違いがあります。

.NET Core アプリコードのテストを容易にするために開発された TestConsole.Core は、ApprovalTests における .NET スタンダードおよび .NET Core アプリサポートの不足によって生じたギャップを埋める必要から生まれました。 大量のデータセットの効果的なテストを可能にすることに焦点を当てたTestConsole.Coreのテスト承認機能は、Test Console Outputオブジェクトを使用してフォーマットされたデータを処理し、どんなテキスト入力にも適用可能な機能を拡張し、C#におけるユニットテストに対する包括的な解決策を提供します。

1.2. TestConsole C# のインストール

テストコンソールは、Visual Studio内のNuGetパッケージマネージャーを使用してインストールするか、NuGetパッケージマネージャーコンソールで以下のコマンドを実行することでインストールできます。

Install-Package TestConsole -Version 2.6.0

または、NuGet の TestConsole 配布から直接ダウンロードします。

2. TestConsoleのコード例

このセクションでは、コンソールの出力をレポートに変換する方法を見ていきます。 以下のソースコードは、テストコンソールを使用して Enumerable オブジェクトを整形されたレポートテーブルに変換します。

using TestConsoleLib;
using System;
using System.Linq;

// Instantiate the output class from TestConsoleLib
var output = new Output();

// Generate a collection of anonymous objects containing value, square, and string length
var data = Enumerable.Range(0, 10)
    .Select(i => new { Value = i, Squared = i * i, String = new string('I', i) });

// Format the data into a table using TestConsoleLib's method
output.FormatTable(data);

// Retrieve the formatted report as a string
string report = output.Report;

// Print the formatted report to console
Console.WriteLine(report);
using TestConsoleLib;
using System;
using System.Linq;

// Instantiate the output class from TestConsoleLib
var output = new Output();

// Generate a collection of anonymous objects containing value, square, and string length
var data = Enumerable.Range(0, 10)
    .Select(i => new { Value = i, Squared = i * i, String = new string('I', i) });

// Format the data into a table using TestConsoleLib's method
output.FormatTable(data);

// Retrieve the formatted report as a string
string report = output.Report;

// Print the formatted report to console
Console.WriteLine(report);
Imports TestConsoleLib
Imports System
Imports System.Linq

' Instantiate the output class from TestConsoleLib
Private output = New Output()

' Generate a collection of anonymous objects containing value, square, and string length
Private data = Enumerable.Range(0, 10).Select(Function(i) New With {
	Key .Value = i,
	Key .Squared = i * i,
	Key .String = New String("I"c, i)
})

' Format the data into a table using TestConsoleLib's method
output.FormatTable(data)

' Retrieve the formatted report as a string
Dim report As String = output.Report

' Print the formatted report to console
Console.WriteLine(report)
$vbLabelText   $csharpLabel

この C# コードスニペットは TestConsoleLib ライブラリを利用して、TestConsole の Output クラスを使用して、表形式データの整形と報告の簡単な例を示し、実行します。 最初に、outputという名前の Output クラスのインスタンスを作成します。 次に、整数値、その平方、および整数値に対応する長さの 'I' からなる文字列を表すプロパティを持つ匿名オブジェクトからなる10要素のコレクションを生成します。

output.FormatTable() メソッドが呼び出され、データをテーブルに整形します。 整形された結果は、reportという文字列変数に保存され、最後にConsole.WriteLine()を使用してコンソールに表示されます。 ### 2.1. 出力

Test Console Application C# (開発者がどのように働くか): 図1 - 前述のコードの出力

3. IronPDF

3. IronPDF

IronPDFの公式ウェブサイトは、.NETアプリケーションにおけるPDF文書の操作を簡素化し強化するために設計された堅牢なC# PDFライブラリのための包括的なプラットフォームを提供します。 柔軟性と使いやすさに重点を置き、IronPDFはHTML、画像、既存のドキュメントからPDFを生成するなど、広範な機能をサポートし、グラフやテーブルなどの動的コンテンツの組み込みも可能にします。 その機能はPDFページのマージ、分割、操作、テキストや画像の抽出などにまで及びます。

その能力は、PDF ページの結合、分割、および操作、さらにテキストや画像の抽出などの機能にまで及びます。 報告、文書、またはその他の PDF 関連タスクのために、IronPDF は信頼性が高く多目的なソリューションとして際立っており、最小限の手間で C# アプリケーションに PDF 機能を統合するプロセスを効率化します。

3.1. テストコンソールレポートの PDF ファイル作成

このセクションでは、TestConsole レポートから出力を変換する方法について説明します。

IronPDFを使い始める


IronPDFライブラリをインストールする

NuGet パッケージマネージャーを使用してインストール

パッケージマネージャーコンソールを通じてプロジェクトにIronPDFを含めたい場合は、パッケージマネージャーコンソールで以下のコマンドを実行してください:

  1. Visual Studio を開き、ソリューションエクスプローラーでプロジェクトを右クリックします。
  2. コンテキストメニューから"NuGetパッケージの管理…"を選択します。
  3. "参照"タブに移動し、IronPDF を検索します。
  4. 検索結果からIronPDFライブラリを選択し、インストールボタンをクリックします。
  5. ライセンス契約のプロンプトを承諾します。

プロジェクトにIronPDFをPackage Managerコンソール経由で含める場合は、Package Manager Consoleで次のコマンドを実行してください:

Install-Package IronPdf

プロジェクトに IronPDF を取得してインストールします。

NuGet ウェブサイトを使ってインストール

機能、互換性、追加のダウンロードオプションを含む IronPDF の詳細な概要については、NuGet ウェブサイトの IronPDF ページを訪れてください。https://www.nuget.org/packages/IronPdf

DLLを介してインストール

また、DLLファイルを使用してIronPDFをプロジェクトに直接組み込むこともできます。DLLを含むZIPファイルをこのIronPDF ZIPパッケージからダウンロードしてください。 それを解凍し、プロジェクトにDLLを含めます。

インストールが完了したら、先ほどの例のレポートを再作成しますが、今回はコンソールに書き込むのではなく、それからPDFレポートを作成します。

using TestConsole.OutputFormatting;
using TestConsoleLib;
using IronPdf;
using System;
using System.Linq;

// Instantiate the output class from TestConsoleLib
var output = new Output();

// Generate a collection of anonymous objects containing value, square, and string length
var data = Enumerable.Range(0, 10)
    .Select(i => new { Value = i, Squared = i * i, String = new string('I', i) });

// Format the data into a table and obtain the formatted output as a string
output.FormatTable(data);
string report = output.Report;

// Wrap the report in HTML pre-tags to maintain formatting
var htmlContent = $"<pre>{report}</pre>";

// Initialize IronPDF renderer and render the HTML content to PDF
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(htmlContent);

// Save the PDF to a file
pdf.SaveAs("test.pdf");
using TestConsole.OutputFormatting;
using TestConsoleLib;
using IronPdf;
using System;
using System.Linq;

// Instantiate the output class from TestConsoleLib
var output = new Output();

// Generate a collection of anonymous objects containing value, square, and string length
var data = Enumerable.Range(0, 10)
    .Select(i => new { Value = i, Squared = i * i, String = new string('I', i) });

// Format the data into a table and obtain the formatted output as a string
output.FormatTable(data);
string report = output.Report;

// Wrap the report in HTML pre-tags to maintain formatting
var htmlContent = $"<pre>{report}</pre>";

// Initialize IronPDF renderer and render the HTML content to PDF
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(htmlContent);

// Save the PDF to a file
pdf.SaveAs("test.pdf");
Imports TestConsole.OutputFormatting
Imports TestConsoleLib
Imports IronPdf
Imports System
Imports System.Linq

' Instantiate the output class from TestConsoleLib
Private output = New Output()

' Generate a collection of anonymous objects containing value, square, and string length
Private data = Enumerable.Range(0, 10).Select(Function(i) New With {
	Key .Value = i,
	Key .Squared = i * i,
	Key .String = New String("I"c, i)
})

' Format the data into a table and obtain the formatted output as a string
output.FormatTable(data)
Dim report As String = output.Report

' Wrap the report in HTML pre-tags to maintain formatting
Dim htmlContent = $"<pre>{report}</pre>"

' Initialize IronPDF renderer and render the HTML content to PDF
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)

' Save the PDF to a file
pdf.SaveAs("test.pdf")
$vbLabelText   $csharpLabel

このC#コードスニペットは、TestConsoleLibとIronPDFを統合して、データのフォーマットされたテーブルを含むPDF文書を生成します。 最初に、TestConsoleLibからOutputクラスのインスタンスを作成し、一連の整数から生成されたデータを使用してテーブルをフォーマットします。 フォーマットされた出力は、report 文字列変数に格納され、その後 HTML pre タグ内に囲まれてフォーマットが保持されます。

その後、コードはIronPDFのChromePdfRendererを使用してHTMLコンテンツをPDF文書としてレンダリングします。 ### 3.1.1. 出力

Test Console Application C# (開発者がどのように働くか): 図2 - 前述のコードの出力

C#のテストコンソールアプリケーション (開発者向けの仕組み):図2 - 前のコードの出力

4. 結論

TestConsole.Coreバリアントは、多様な環境での利用範囲を拡大し、他のフレームワークによって残されたギャップを埋め、フォーマットされた出力のサイドバイサイド比較の効率的なワークフローを提供します。 IronPDFとシームレスに統合され、強力なC#ライブラリとして、スムーズなテストだけでなく、PDFの生成と操作への機能を拡張します。

それは、堅牢なC#ライブラリであるIronPDFとシームレスに統合され、テストの効率を高めるだけでなく、PDF生成と操作の能力も拡張します。 IronPDF HTMLからPDFへの変換に関する詳細で完全なチュートリアルはIronPDFチュートリアルガイドにて見つけることができます。

HTMLからPDFへの変換に関する詳細で完全なチュートリアルはIronPDFチュートリアルガイドにあります。

よくある質問

C#でコンソールアプリケーションを作成するにはどうすればよいですか?

C#でコンソールアプリケーションを作成するには、Visual Studioを使用して新しいプロジェクトを開始し、プロジェクトタイプとして「コンソールアプリ」を選択します。次に、Mainメソッド内にC#コードを書いてアプリケーションロジックを実行します。

.NET TestConsoleの目的は何ですか?

.NET TestConsoleは、フォーマットされた出力を承認された基準と並列に比較する独自のワークフローを提供することで.NETアプリケーションをテストするよう設計されており、テストプロセスの効率性を向上させます。

C#でコンソールアプリケーションの出力をPDFに変換するにはどうすればよいですか?

コンソール出力をHTML形式の文字列としてキャプチャし、それをIronPDFのRenderHtmlAsPdfメソッドを使用してHTMLコンテンツからPDFを作成します。

C#アプリケーションでPDFライブラリを使用する利点は何ですか?

IronPDFのようなPDFライブラリをC#アプリケーションで使用すると、開発者はPDFファイルを生成、変更、抽出でき、HTMLコンテンツからPDFを作成し、動的データを組み込むなどの機能が可能になります。

.NET TestConsoleでの並列出力比較はどのように機能しますか?

.NET TestConsoleでの並列出力比較は、アプリケーションのフォーマットされた出力を承認された基準と比較し、開発者が相違点を特定しテスト結果の精度を確保できるようにします。

.NET TestConsoleは.NET Coreで使用できますか?

はい、.NET TestConsoleは、フルフレームワークと.NET Coreの両方で使用でき、異なる.NET環境でのアプリケーションテストに柔軟性と互換性を提供します。

PDFライブラリを.NETプロジェクトに統合するにはどうすればよいですか?

IronPDFのようなPDFライブラリを.NETプロジェクトに統合するには、Visual StudioのNuGetパッケージマネージャーを使用してインストールするか、ライブラリのDLLをダウンロードしてプロジェクトの参照に追加します。

ソフトウェア開発でテストライブラリを使用する利点は何ですか?

テストライブラリ、例えば.NET TestConsoleは、テストの承認を自動化し、効果的な並列出力比較を可能にし、全体的なテスト管理を向上させ、ソフトウェアの品質を向上させます。

.NET TestConsoleで大規模なデータセットをどのように処理しますか?

.NET TestConsoleは、複雑なアサーションを簡素化し、大規模なデータ出力の正確なテストを確保するために比較アプローチを使用して、大規模なデータセットを効果的に処理します。

IronPDFの使用に関する詳細情報はどこで見つけることができますか?

IronPDFの使用に関するより詳細な情報は、公式のIronPDFウェブサイトで見つけることができ、C#プロジェクトでIronPDFを統合し利用するための包括的なガイド、チュートリアル、およびドキュメントを提供しています。

Jacob Mellor、Ironチームの最高技術責任者(CTO)
最高技術責任者(CTO)

Jacob Mellorは、Iron Softwareの最高技術責任者であり、C# PDF技術の開拓者としてその先進的な役割を担っています。Iron Softwareのコアコードベースのオリジナルデベロッパーである彼は、創業時から製品のアーキテクチャを形作り、CEOのCameron Rimingtonと協力してNASA、Tesla、全世界の政府機関を含む50人以上の会社に成長させました。

Jacobは、1998年から2001年にかけてマンチェスター大学で土木工学の第一級優等学士号(BEng)を取得しました。1999年にロンドンで最初のソフトウェアビジネスを立ち上げ、2005年には最初の.NETコンポーネントを作成し、Microsoftエコシステムにおける複雑な問題の解決を専門にしました。

彼の旗艦製品であるIronPDFとIronSuite .NETライブラリは、全世界で3000万以上のNuGetインストールを達成しており、彼の基本コードが世界中で使用されている開発者ツールを支えています。商業的な経験を25年間積み、コードを書くことを41年間続けるJacobは、企業向けのC#、Java、およびPython PDF技術の革新を推進し続け、次世代の技術リーダーを指導しています。