跳過到頁腳內容
.NET幫助

Test Console Application C#(開發者的工作原理)

測試在軟體開發領域中扮演著關鍵角色,是保證應用程序質量的重要元素。 在眾多可用的框架中,.NET 以其廣泛被接受的Windows應用程序開發選擇而脫穎而出。 本文深入探討 .NET TestConsole 的細節,這是一個專為測試 .NET 應用程序設計的工具。

在這次探索中,我們將撰寫一個全面的代碼示例,說明 .NET TestConsole 的實際實現。 此外,我們將介紹 IronPDF,一個與 .NET TestConsole 無縫集成的傑出 C# PDF 庫。 這個庫被證明是無價的,賦予開發人員在 .NET TestConsole 環境中輕鬆訪問和生成 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 類實例。 隨後,它生成一個包含 10 個元素的集合,其中包含代表整數值、其平方和長度對應於整數值的'I'字符串的匿名對象。

然後調用 output.FormatTable() 方法將數據格式化為表格。 格式化的結果存儲在 report 字符串變量中,最終使用 Console.WriteLine() 將其打印到控制台。 這展示了 TestConsole 的功能和能力,能夠輕鬆格式化和呈現表格數據,以改善單元測試或調試場景中的可讀性。

2.1. 輸出

測試控制台應用程序 C#(對開發人員的工作原理):圖1 - 先前代碼的輸出

3. IronPDF

IronPDF 的官方網站 提供了一個全面的平台,為一個強大的 C# PDF 庫設計,旨在簡化和增強 .NET 應用程序中處理PDF文檔的過程。 提供了一套全面的功能,IronPDF 使開發人員能夠在其 C# 項目中輕鬆地創建、處理和提取PDF文件的內容。 以靈活性和易用性為重點,IronPDF 支持各種功能,包括從 HTML、圖像或現有文檔生成 PDF,以及納入圖表和表格等動態內容。

它的功能擴展到合併、拆分和操控 PDF 頁面,以及文本和圖像的提取功能。 無論是用於報告、文檔或任何 PDF 相關任務,IronPDF 作為一個可靠且多功能的解決方案脫穎而出,簡化了將 PDF 功能集成到 C# 應用程序中所需的最小努力。

3.1. 創建測試控制台報告的 PDF 文件

在本節中,我們將討論如何轉換 TestConsole 報告的輸出。

開始使用 IronPDF


安裝IronPDF庫

通過 NuGet 包管理器安裝

要使用 NuGet Package Manager 將 IronPDF 集成到您的控制台項目中,請按以下步驟操作:

  1. 開啟 Visual Studio,並在解決方案管理器中右鍵單擊您的項目。
  2. 從彈出菜單中選擇“管理 NuGet 包…”。
  3. 轉到瀏覽標籤並搜索 IronPDF。
  4. 在搜索結果中選擇 IronPDF 庫並單擊安裝按鈕。
  5. 接受任何許可協議提示。

如果您想通過 Package Manager 控制台在項目中包含 IronPDF,請在 Package Manager 控制台中執行以下命令:

Install-Package IronPdf

這會將 IronPDF 下載並安裝到您的項目中。

通過 NuGet 網站安裝

要獲取 IronPDF 的詳細概述,包括其功能、兼容性和其他下載選項,請造訪 NuGet 網站上的 IronPDF 頁面 https://www.nuget.org/packages/IronPdf

通過 DLL 安裝

或者,您可以直接使用其 DLL 文件將 IronPDF 集成到您的項目中。從這個 IronPDF ZIP 套件 下載包含 DLL 的 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 文檔。 最初,它創建了一個 Output 類的實例來自 TestConsoleLib,並使用從整數範圍生成的數據格式化了一個表格。 格式化輸出存儲在 report 字符串變量中,隨後在 HTML pre 標籤內包裹以保留格式。

隨後,代碼利用來自 IronPDF 的 ChromePdfRenderer 將 HTML 內容渲染為 PDF 文檔。 最終,生成的 PDF 保存為"test.pdf"。此代碼演示了 TestConsoleLib 的格式化與 IronPDF 的 PDF 生成的無縫結合,為將格式化數據納入 PDF 文檔中的 C# 應用程序提供了一個直接的解決方案。

3.1.1. 輸出

測試控制台應用程序 C#(對開發人員的工作原理):圖2 - 先前代碼的輸出

4. 結論

.NET TestConsole 作為 C# 應用程序的重要測試庫出現,提供了一種獨特的單元測試方法,減輕與大型數據集和複雜斷言相關的挑戰。 TestConsole.Core 變體在不同環境中擴展了其效用,彌補了其他框架的空白,提供了一個高效的從格式化輸出進行並排比較的工作流程。

它與 IronPDF(一個強大的 C# 庫)無縫集成,不僅促進了流線化測試,還擴展到 PDF 生成和操控。 這些工具一起使開發人員能夠輕鬆處理測試複雜性,並增強其 C# 項目中的文檔生成,提供一個全面而高效的解決方案。

IronPDF HTML 到 PDF 轉換的詳細和完整教程 可以在 IronPDF 教程指南中找到。

常見問題解答

如何在C#中创建控制台应用程序?

要在C#中创建控制台应用程序,可以使用Visual Studio来启动新项目并选择“控制台应用程序”作为项目类型。然后,在Main方法中编写您的C#代码以执行应用程序逻辑。

.NET TestConsole的目的是什么?

.NET TestConsole旨在通过提供一种涉及将格式化输出与批准的标准进行并排比较的独特工作流程来测试.NET应用程序,从而提高测试过程的效率。

如何在C#中将控制台应用程序的输出转换为PDF?

您可以使用IronPDF在C#中将控制台应用程序的输出转换为PDF。首先,将控制台输出捕获为格式化的HTML字符串,然后使用IronPDF的RenderHtmlAsPdf方法从HTML内容生成PDF。

使用PDF库在C#应用程序中的好处是什么?

在C#应用程序中使用像IronPDF这样的PDF库可以让开发人员生成、修改和提取PDF文件中的内容,启用如从HTML内容创建PDF、动态数据整合等功能。

在.NET TestConsole中,逐行输出比较的工作原理是什么?

在.NET TestConsole中逐行输出比较涉及将应用程序的格式化输出与预先批准的标准进行比较,使开发人员能够识别差异并确保测试结果的准确性。

.NET TestConsole可以与.NET Core一起使用吗?

是的,.NET TestConsole可以与完整框架和.NET Core一起使用,为测试应用程序提供了跨不同.NET环境的灵活性和兼容性。

如何在我的 .NET 項目中整合 PDF 庫?

要将像IronPDF这样的PDF库集成到您的.NET项目中,可以在Visual Studio中使用NuGet包管理器进行安装,或者下载库的DLL并将其添加到项目的引用中。

在软件开发中使用测试库的优势是什么?

诸如.NET TestConsole这样的测试库通过自动化测试批准、促进有效的逐行输出比较以及增强整体测试管理来简化测试过程,进而改善软件质量。

如何使用.NET TestConsole处理大型数据集?

.NET TestConsole通过使用简化复杂断言的比较方法,高效地处理大型数据集,并确保对大规模数据输出进行准确测试。

在哪里可以找到有关使用IronPDF的更多信息?

可以在官方IronPDF网站上找到更多关于使用IronPDF的信息,该网站提供有关在C#项目中集成和利用IronPDF的综合指南、教程和文档。

Curtis Chau
技術作家

Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。