跳過到頁腳內容
.NET幫助

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

測試在軟體開發領域中扮演關鍵的角色,是保證應用程式品質的重要元素。 在眾多可用的框架中,.NET 是製作 Windows 應用程式的最佳選擇。 本文將深入探討 .NET TestConsole 的複雜性,這是專為測試 .NET 應用程式而設計的工具。

在整個探索過程中,我們將撰寫一個全面的程式碼範例,說明 .NET TestConsole 的實際執行。 此外,我們將介紹 IronPDF,一個與 .NET TestConsole 無縫整合的典範 C# PDF 函式庫。 該程式庫非常有價值,使開發人員能夠在 .NET TestConsole 環境中輕鬆存取和產生 PDF。 加入我們的旅程,讓我們一起揭開 .NET TestConsole 與 IronPDF's C# PDF Functionality 的協同效應所產生的功能與可能性。

1.簡介:TestConsole

TestConsole 是一個多功能的測試函式庫,在 C# 程式語言中引入了獨特的單元測試方法。 傳統的單元測試方法在處理大型資料集和複雜斷言時經常面臨挑戰,導致難以辨識預期結果與實際結果之間的差異。 有鑑於此,TestConsole 提供了新穎的工作流程,從傳統的預測方式轉變為將格式化輸出與指定的"認可"標準輸出版本進行並排比較。

在這個函式庫中,尤其是 TestConsole,".Core"變體擴充了從原始 TestConsole 專案繼承的格式化功能,並在測試結果與預期有偏差的情況下,加入必要的測試核准功能。 TestConsole.Core 可與建立伺服器無縫整合,以觸發測試失敗。 在開發電腦上,預設情況下,它提供可重新設定的功能,以利用已安裝的檔案比較公用程式來顯示差異。 值得注意的是,此方法可簡化核准程序,讓開發人員在預期會出現差異時,可手動更新已核准的版本。

1.1.為何使用 TestConsole?

TestConsole.Core 從 ApprovalTests 擷取靈感,但其與眾不同之處在於可同時支援撰寫完整 Framework 與 .NET Core 測試套件。 該函式庫可滿足在不同環境中進行測試的需求,就像出版時的 ApprovalTests,主要是迎合完整框架的情境。 TestConsole.Core 中的語法雖然與 ApprovalTests 有相似之處,但仍有差異,尤其是關於檔案比較工具的選擇和內容的直接核准。

TestConsole.Core 是為了方便在 .NET Core 應用程式碼中進行測試而開發,它的出現是為了彌補 ApprovalTests 缺乏 .NET Standard 和 .NET Core 應用程式支援所留下的缺口。 TestConsole.Core 的測試核准功能著重於實現大型資料集的有效測試,可容納使用 Test Console Output 物件格式化的資料,並將其功能擴展至處理任何純文字輸入,為 C# 中的單元測試提供全面的解決方案。

1.2. Install 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's 字串。

然後呼叫 output.FormatTable() 方法將資料格式化為表格。 格式化後的結果儲存在字串變數 report 中,最後使用 Console.WriteLine() 將其列印到控制台。 這展示了 TestConsole 的功能和能力,可輕鬆格式化和呈現表格資料,以提高單元測試或除錯情境中的可讀性。

2.1.輸出

Test Console Application C# (How It Works For Developer):圖 1 - 先前程式碼的輸出

3.IronPDF

IronPDF的官方網站為一個強大的C# PDF函式庫提供了一個全面的平台,該函式庫旨在簡化和增強在.NET應用程式中處理PDF文件的過程。 IronPDF 提供一系列全面的功能,讓開發人員可以在 C# 專案中輕鬆地建立、處理 PDF 檔案,並從 PDF 檔案中擷取內容。 IronPDF 注重靈活性和易用性,支援廣泛的功能,包括從 HTML、圖像或現有文件生成 PDF,以及加入動態內容(如圖表和表格)。

其功能延伸至合併、分割和操作 PDF 頁面,以及擷取文字和影像等功能。 無論是用於報表、文件或任何 PDF 相關工作,IronPDF 都能以可靠且多功能的解決方案脫穎而出,以最少的工作量將 PDF 功能整合至 C# 應用程式中。

3.1.建立測試控制台報告的 PDF 檔案

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

安裝 IronPDF Library

使用 NuGet 套件管理員安裝

若要使用 NuGet Package Manager 將 IronPDF 整合至您的 Console 專案,請遵循下列步驟:

1.開啟 Visual Studio,在解決方案總管中,用滑鼠右鍵按一下專案。 2.從上下文功能表中選擇"管理 NuGet 套件..."。 3.前往瀏覽標籤,搜尋 IronPDF。 4.從搜尋結果中選擇 IronPDF 函式庫,然後按一下安裝按鈕。 5.接受任何許可協議提示。

如果您想透過套件管理員控制台將 IronPDF 包含在專案中,那麼請在套件管理員控制台執行下列指令:

Install-Package IronPdf

它將擷取 IronPDF 並安裝到您的專案中。

使用 NuGet 網站安裝

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

透過 DLL 安裝

另外,您也可以使用 IronPDF 的 DLL 檔案,直接將 IronPDF 納入您的專案中。從此 IronPDF ZIP Package 下載包含 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 文件。 一開始,它會從 TestConsoleLib 建立一個 Output 類別的實例,並使用從整數範圍產生的資料格式化一個表格。 格式化的輸出儲存在 report 字串變數中,然後將其包含在 HTML 前置標籤中以保留格式。

隨後,程式碼利用 IronPDF 的 ChromePdfRenderer 將 HTML 內容渲染為 PDF 文件。 最後,產生的 PDF 會儲存為 "test.pdf"。這段程式碼展示了 TestConsoleLib 在格式化方面與 IronPDF 在 PDF 產生方面的無縫結合,提供了在 C# 應用程式中將格式化資料納入 PDF 文件的直接解決方案。

3.1.1.輸出

Test Console Application C# (How It Works For Developer):圖 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的综合指南、教程和文檔。

Jacob Mellor, Team Iron 首席技術官
首席技術官

Jacob Mellor是Iron Software的首席技術官,也是開創C# PDF技術的前瞻性工程師。作為Iron Software核心代碼庫的原始開發者,他自公司成立以來就塑造了公司的產品架構,並與CEO Cameron Rimington將公司轉型為服務NASA、Tesla以及全球政府機構的50多人公司。

Jacob擁有曼徹斯特大學土木工程一級榮譽學士學位(1998年–2001年)。他於1999年在倫敦開立首家軟體公司,並於2005年建立了他的第一個.NET組件,專注於解決Microsoft生態系統中的複雜問題。

他的旗艦作品IronPDF和Iron Suite .NET程式庫全球已獲得超過3000萬次NuGet安裝,他的基礎代碼不斷在全球各地驅動開發者工具。擁有25年以上的商業經驗和41年的編碼專業知識,Jacob仍然專注於推動企業級C#、Java和Python PDF技術的創新,同時指導下一代技術領導者。

鋼鐵支援團隊

我們每週 5 天,每天 24 小時在線上。
聊天
電子郵件
打電話給我