跳至页脚内容
.NET 帮助

测试控制台应用程序 C#(开发者如何使用)

测试在软件开发领域中发挥着关键作用,是保证应用程序质量的重要因素。 在众多可用的框架中,.NET 因其广泛应用于构建基于 Windows 的应用程序而脱颖而出。 本文深入探讨了 .NET TestConsole 的复杂性,这是一种专门为测试 .NET 应用程序而设计的工具。

在本次探讨中,我们将编写一个全面的代码示例,说明 .NET TestConsole 的实际应用。 此外,我们还将着眼于 IronPDF,这是一个无缝集成到 .NET TestConsole 的 C# PDF 库的典范。 该库被证明是无价的,使开发人员能够在 .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 相似的同时,提供了区别,特别是在文件比较工具选择和内容直接批准的方面。

TestConsole.Core 是为促进 .NET 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的输出类实例。 随后,它生成一个包含匿名对象的 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. 创建 Test Console 报告的 PDF 文件

在本节中,我们将讨论如何转换 TestConsole 报告的输出。

开始使用 IronPDF


安装 IronPDF 库

使用 NuGet 包管理器安装

要使用 NuGet 包管理器将 IronPDF 集成到您的控制台项目中,请执行以下步骤:

  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 安装

或者,您可以使用其 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 文档。 起初,它从 TestConsoleLib 创建一个输出类的实例,并使用从整数范围生成的数据格式化一个表格。 格式化后的输出被存储在report字符串变量中,然后将其置于 HTML pre 标签中以保留格式。

随后,代码利用 IronPDF 的 ChromePdfRenderer 将 HTML 内容渲染为 PDF 文档。 最后,生成的 PDF 保存为“test.pdf”。此代码演示了 TestConsoleLib 格式化和 IronPDF PDF 生成的无缝结合,为在 C# 应用程序中将格式化数据整合到 PDF 文档中提供了简便的解决方案。

3.1.1. 输出

测试控制台应用 C# (开发人员的工作原理):图 2 - 上一段代码的输出

4. 结论

.NET TestConsole 作为 C# 应用程序的一个关键测试库出现,提供了一种独特的单元测试方法,减轻了与大型数据集和复杂断言相关的挑战。 TestConsole.Core 变种通过其跨多种环境的实用性,弥合其他框架留下的差距,并为格式化输出的并排比较提供了一种高效的工作流程。

它与IronPDF无缝集成,这是一个坚固的 C# 库,不仅促进了流畅的测试,还扩展了其功能到 PDF 的生成和操作。 这些工具共同使开发人员能够轻松处理测试复杂性,并在其 C# 项目中增强文档生成,提供了全面而高效的解决方案。

关于 IronPDF HTML 到 PDF 转换的详细教程可以在IronPDF教程指南中找到。

常见问题解答

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

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

.NET TestConsole的用途是什么?

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

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

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

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

在C#应用程序中使用类似IronPDF的PDF库允许开发人员生成、修改和提取PDF文件中的内容,启用从HTML内容创建PDF、动态数据合并等功能。

.NET TestConsole中的并排输出对比如何工作?

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

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

可以,.NET TestConsole可以与完整框架和.NET Core一起使用,为测试应用程序提供灵活性和兼容性。

如何将 PDF 库集成到我的 .NET 项目中?

要将类似IronPDF的PDF库集成到您的.NET项目中,您可以在Visual Studio中使用NuGet包管理器安装它,或下载库的DLL并将其添加到项目参考中。

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

测试库,如.NET TestConsole,通过自动化测试审批、促进高效的并排输出对比、增强整体测试管理,简化测试过程,从而提高软件质量。

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

.NET TestConsole通过使用简化复杂断言的对比方法,有效地处理大型数据集,确保广泛数据输出的准确测试。

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

关于使用IronPDF的更多信息可以在官方IronPDF网站上找到,提供全面的指南、教程和文档,以便在C#项目中进行集成和使用。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。