Zum Fußzeileninhalt springen
.NET HILFE

Test-Konsolenanwendung C# (Wie es für Entwickler funktioniert)

Testing spielt eine entscheidende Rolle im Bereich der Softwareentwicklung und dient als wesentliches Element zur Gewährleistung der Qualität von Anwendungen. Unter der Vielzahl verfügbarer Frameworks sticht .NET als weit akzeptierte Wahl für die Erstellung von Windows-basierten Anwendungen hervor. Dieser Artikel behandelt die Feinheiten von .NET TestConsole, einem Werkzeug, das speziell für das Testen von .NET-Anwendungen entwickelt wurde.

Während dieser Erkundung werden wir ein umfassendes Codebeispiel schreiben, das die praktische Implementierung von .NET TestConsole veranschaulicht. Zusätzlich werden wir IronPDF beleuchten, eine beispielhafte C#-PDF-Bibliothek, die nahtlos in die .NET-Testkonsole integriert ist. Diese Bibliothek erweist sich als unschätzbar wertvoll, da sie Entwicklern ermöglicht, mühelos auf PDFs im TestConsole-Umfeld zuzugreifen und diese zu generieren. Begleiten Sie uns auf dieser Reise, während wir die Funktionen und Möglichkeiten enthüllen, die sich aus der Synergie von .NET TestConsole und IronPDF's C# PDF-Funktionalität ergeben.

1. Einführung: TestConsole

TestConsole ist eine vielseitige Testbibliothek, die einen eigenständigen Ansatz für Unit-Tests in der Programmiersprache C# einführt. Traditionelle Methoden von Unit-Tests stoßen oft auf Herausforderungen bei großen Datensätzen und komplexen Behauptungen, was zu Schwierigkeiten beim Erkennen von Unterschieden zwischen erwarteten und tatsächlichen Ergebnissen führt. Als Antwort darauf bietet TestConsole einen neuartigen Workflow, der von der konventionellen voraussagestützenden Methode zu einem Vergleich von formatierten Ausgaben mit einer bestimmten "approvierte" Standardausgabenversion wechselt.

In dieser Bibliothek, insbesondere mit der TestConsole, erweitert die '.Core'-Variante die von dem ursprünglichen TestConsole-Projekt geerbten Formatierungsfähigkeiten und fügt wesentliche Testgenehmigungs-Features in Szenarien hinzu, in denen Testergebnisse von den Erwartungen abweichen. TestConsole.Core integriert sich nahtlos mit dem Build-Server, um einen Testfehler auszulösen. Auf dem Entwicklungs-PC bietet es standardmäßig die Re konfigurierbarkeit, um installierte Dateivergleichswerkzeuge zu verwenden, um Unterschiede zu visualisieren. Bemerkenswerterweise vereinfacht dieser Ansatz den Genehmigungsprozess, wodurch Entwickler die genehmigte Version manuell aktualisieren können, wenn Unterschiede erwartet werden.

1.1. Warum TestConsole verwenden?

TestConsole.Core lässt sich von ApprovalTests inspirieren, unterscheidet sich jedoch durch die Unterstützung sowohl zum Schreiben von Komplettframework- als auch von .NET-Core-Test-Suiten. Die Bibliothek adressiert den Bedarf zum Testen in unterschiedlichen Umgebungen, da ApprovalTests zum Zeitpunkt der Veröffentlichung vor allem auf Komplettframework-Szenarien ausgerichtet war. Die Syntax in TestConsole.Core bietet trotz ähnlicher Punkte mit ApprovalTests auch Unterschiede, insbesondere hinsichtlich der Auswahl von Dateivergleichswerkzeugen und der direkten Genehmigung von Inhalten.

Entwickelt, um das Testen im .NET Core-Anwendungscode zu erleichtern, entsteht TestConsole.Core aus der Notwendigkeit, die Lücke zu schließen, die durch das Fehlen von .NET-Standard- und .NET-Core-Anwendungssupport in ApprovalTests hinterlassen wurde. Mit dem Fokus auf die effektive Ermöglichung von Tests großer Datensätze, berücksichtigen die Testgenehmigungs-Features von TestConsole.Core Daten, die mithilfe des TestConsole-Ausgabeobjekts formatiert sind, und erweitern ihre Funktionalität, um jegliche Klartext-Eingabe zu handhaben, und bieten eine umfassende Lösung für Unit-Testing in C#.

1.2. Installieren Sie TestConsole C#

Die Testkonsole kann mit dem NuGet-Paket-Manager aus Visual Studio heraus installiert werden, oder indem der folgende Befehl in der NuGet-Paket-Manager-Konsole ausgeführt wird.

Install-Package TestConsole -Version 2.6.0

Oder direkt vom TestConsole-Distribution auf NuGet herunterladen.

2. ein Code-Beispiel für TestConsole

In diesem Abschnitt werden wir sehen, wie Sie Konsolenausgaben in Berichte konvertieren können. Der unten stehende Quellcode verwendet eine Testkonsole, um Enumerable-Objekte in eine gut formatierte Berichtstabelle zu konvertieren.

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

Dieses C#-Code-Snippet verwendet die TestConsoleLib-Bibliothek, um ein einfaches Beispiel für das Formatieren und Berichten tabellarischer Daten unter Verwendung der Output-Klasse von TestConsole zu demonstrieren und auszuführen. Es beginnt mit dem Erstellen einer Instanz der Output-Klasse mit dem Namen output. Anschließend wird eine Sammlung von 10 Elementen erzeugt, die anonyme Objekte mit Eigenschaften enthalten, die einen ganzzahligen Wert, dessen Quadrat und eine Zeichenkette von 'I's repräsentieren, deren Länge dem ganzzahligen Wert entspricht.

Die Methode output.FormatTable() wird dann aufgerufen, um die Daten in eine Tabelle zu formatieren. Das formatierte Ergebnis wird in der Zeichenfolgenvariablen report gespeichert, die schließlich mit Console.WriteLine() auf der Konsole ausgegeben wird. Dies zeigt die Fähigkeit und Möglichkeit von TestConsole, tabellarische Daten einfach zu formatieren und zu präsentieren, um die Lesbarkeit während Unit-Testing oder Debugging-Szenarien zu verbessern.

2.1. Ausgabe

Testkonsolenanwendung C# (Wie es für Entwickler funktioniert): Abbildung 1 - Ausgabe des vorherigen Codes

3. ironPDF

IronPDF's Offizielle Website bietet eine umfassende Plattform für eine robuste C#-PDF-Bibliothek, die entwickelt wurde, um den Prozess der Arbeit mit PDF-Dokumenten in .NET-Anwendungen zu vereinfachen und zu verbessern. Durch ein umfassendes Set von Features befähigt IronPDF Entwickler, mühelos PDF-Dateien innerhalb ihrer C#-Projekte zu erstellen, zu manipulieren und Inhalte daraus zu extrahieren. Mit dem Fokus auf Flexibilität und Benutzerfreundlichkeit unterstützt IronPDF eine breite Palette von Funktionalitäten, einschließlich der Generierung von PDFs aus HTML, Bildern oder vorhandenen Dokumenten sowie der Einbindung dynamischer Inhalte, wie Diagramme und Tabellen.

Seine Fähigkeiten erstrecken sich über das Zusammenführen, Teilen und Manipulieren von PDF-Seiten sowie Funktionen wie das Extrahieren von Text und Bildern. Egal ob für Berichterstattung, Dokumentation oder jede PDF-bezogene Aufgabe, IronPDF stellt eine zuverlässige und vielseitige Lösung dar, die die Integration von PDF-Funktionalität in C#-Anwendungen mit minimalem Aufwand erleichtert.

3.1. PDF-Dateien von Testkonsolenberichten erstellen

In diesem Abschnitt besprechen wir, wie Sie die Ausgabe von TestConsole-Berichten umwandeln können.

Erste Schritte mit IronPDF


IronPDF-Bibliothek installieren

Installation mit NuGet Package Manager

Um IronPDF in Ihr Konsolenprojekt mithilfe des NuGet-Paket-Managers zu integrieren, befolgen Sie diese Schritte:

  1. Öffnen Sie Visual Studio und klicken Sie im Lösungsexplorer mit der rechten Maustaste auf Ihr Projekt.
  2. Wählen Sie im Kontextmenü "NuGet-Pakete verwalten…" aus.
  3. Gehe zum Durchsuchen-Tab und suche nach IronPDF.
  4. Wählen Sie die IronPDF-Bibliothek aus den Suchergebnissen aus und klicken Sie auf die Schaltfläche Installieren.
  5. Akzeptieren Sie alle Lizenzvereinbarungen.

Wenn Sie IronPDF über die Paket-Manager-Konsole in Ihr Projekt aufnehmen möchten, führen Sie den folgenden Befehl in der Paket-Manager-Konsole aus:

Install-Package IronPdf

Es wird IronPDF in Ihr Projekt holen und installieren.

Installation über NuGet Website

Für einen detaillierten Überblick über IronPDF, einschließlich seiner Funktionen, Kompatibilität und zusätzlicher Download-Optionen, besuchen Sie die IronPDF-Seite auf der NuGet-Website unter https://www.nuget.org/packages/IronPdf.

Installation über DLL

Alternativ können Sie IronPDF direkt über seine DLL-Datei in Ihr Projekt einbinden. Laden Sie die ZIP-Datei mit der DLL von diesem IronPDF-ZIP-Paket herunter. Entpacken Sie es und nehmen Sie die DLL in Ihr Projekt auf.

Sobald installiert, werden wir nun den obigen Beispielbericht neu erstellen, aber diesmal werden wir ihn nicht in die Konsole schreiben, sondern einen PDF-Bericht daraus erstellen.

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

Dieses C#-Code-Snippet zeigt die Integration von TestConsoleLib und IronPDF, um ein PDF-Dokument zu generieren, das eine formatierte Tabelle von Daten enthält. Zunächst erstellt es eine Instanz der Ausgabeklasse von TestConsoleLib und formatiert eine Tabelle mit Daten, die aus einer Reihe von Ganzzahlen erzeugt werden. Die formatierte Ausgabe wird in der report-String-Variablen gespeichert, die dann innerhalb von HTML-Vor-tags eingeschlossen wird, um das Format beizubehalten.

Anschließend wird der ChromePdfRenderer von IronPDF verwendet, um den HTML-Inhalt als PDF-Dokument zu rendern. Schließlich wird das resultierende PDF als "test.pdf" gespeichert. Dieser Code demonstriert die nahtlose Kombination von TestConsoleLib für die Formatierung und IronPDF zur PDF-Erstellung und bietet eine unkomplizierte Lösung zur Einbindung von formatierten Daten in PDF-Dokumente innerhalb einer C#-Anwendung.

3.1.1. Ausgabe

Testkonsolenanwendung C# (Wie es für Entwickler funktioniert): Abbildung 2 - Ausgabe des vorherigen Codes

4. Fazit

Die .NET-Testkonsole erweist sich als entscheidende Testbibliothek für C#-Anwendungen und präsentiert einen eigenständigen Ansatz für Unit-Tests, der Herausforderungen im Zusammenhang mit großen Datensätzen und komplexen Behauptungen mindert. Die TestConsole.Core-Variante erweitert ihren Nutzen über unterschiedliche Umgebungen hinweg, schließt Lücken, die von anderen Frameworks hinterlassen wurden, und bietet einen effizienten Workflow für den Vergleich von formatierten Ausgaben.

Es integriert sich nahtlos mit IronPDF, einer robusten C#-Bibliothek, und erleichtert nicht nur das Testen, sondern erweitert auch seine Fähigkeiten zur PDF-Erstellung und -Manipulation. Zusammen ermöglichen diese Werkzeuge Entwicklern, testbezogene Herausforderungen mühelos zu bewältigen und die Dokumentenerstellung in ihren C#-Projekten zu verbessern und bieten eine umfassende und effiziente Lösung.

Das detaillierte und vollständige Tutorial zur IronPDF-HTML-zu-PDF-Konvertierung finden Sie im IronPDF-Tutorial-Guide.

Häufig gestellte Fragen

Wie kann ich eine Konsolenanwendung in C# erstellen?

Um eine Konsolenanwendung in C# zu erstellen, können Sie Visual Studio verwenden, um ein neues Projekt zu starten und 'Konsolenapp' als Projekttyp auszuwählen. Schreiben Sie dann Ihren C#-Code innerhalb der Main-Methode, um die Anwendungslogik auszuführen.

Was ist der Zweck der .NET TestConsole?

.NET TestConsole ist für das Testen von .NET-Anwendungen konzipiert, ermöglicht den Vergleich formatierter Ausgaben mit genehmigten Standards und verbessert die Testprozess-Effizienz.

Wie kann ich Konsolenanwendungsausgaben in C# in PDFs umwandeln?

Sie können IronPDF verwenden, um Konsolenanwendungsausgaben in C# in PDFs zu konvertieren. Erfassen Sie zunächst die Konsolenausgabe als formatierte HTML-Zeichenkette und verwenden Sie dann die Methode RenderHtmlAsPdf von IronPDF, um aus dem HTML-Inhalt ein PDF zu erstellen.

Welche Vorteile bietet die Verwendung einer PDF-Bibliothek in C#-Anwendungen?

Die Verwendung einer PDF-Bibliothek wie IronPDF in C#-Anwendungen ermöglicht es Entwicklern, PDF-Dateien zu generieren, zu ändern und Inhalte daraus zu extrahieren, wodurch Funktionen wie die PDF-Erstellung aus HTML-Inhalten, die Einbindung dynamischer Daten und mehr möglich sind.

Wie funktioniert der Vergleich von Ausgaben nebeneinander in .NET TestConsole?

Der Vergleich von Ausgaben nebeneinander in .NET TestConsole umfasst den Vergleich der formatierten Ausgabe Ihrer Anwendung mit einem vorab genehmigten Standard, der es Entwicklern ermöglicht, Abweichungen zu identifizieren und die Genauigkeit der Testergebnisse sicherzustellen.

Kann die .NET TestConsole mit .NET Core verwendet werden?

Ja, die .NET TestConsole kann sowohl mit dem vollständigen Framework als auch mit .NET Core verwendet werden und bietet Flexibilität und Kompatibilität über verschiedene .NET-Umgebungen hinweg für das Testen von Anwendungen.

Wie kann ich eine PDF-Bibliothek in mein .NET-Projekt integrieren?

Um eine PDF-Bibliothek wie IronPDF in Ihr .NET-Projekt zu integrieren, können Sie den NuGet-Paketmanager in Visual Studio verwenden, um sie zu installieren oder die DLL der Bibliothek herunterladen und zu den Verweisen Ihres Projekts hinzufügen.

Welche Vorteile hat die Verwendung einer Testbibliothek in der Softwareentwicklung?

Eine Testbibliothek, wie etwa .NET TestConsole, rationalisiert den Testprozess, indem sie Testgenehmigungen automatisiert, effiziente nebeneinander Vergleiche der Ausgaben erleichtert und das Testmanagement insgesamt verbessert, was zu einer verbesserten Softwarequalität führt.

Wie gehen Sie mit großen Datenmengen mit der .NET TestConsole um?

.NET TestConsole ist darauf ausgelegt, große Datenmengen effektiv zu handhaben, indem sie einen Vergleichsansatz verwendet, der komplexe Assertions vereinfacht und die genaue Testung umfangreicher Datenausgaben gewährleistet.

Wo kann ich weitere Informationen zur Verwendung von IronPDF finden?

Weitere Informationen zur Verwendung von IronPDF finden Sie auf der offiziellen IronPDF-Website, die umfassende Leitfäden, Tutorials und Dokumentationen zur Integration und Nutzung von IronPDF in C#-Projekten bietet.

Jacob Mellor, Chief Technology Officer @ Team Iron
Chief Technology Officer

Jacob Mellor ist Chief Technology Officer bei Iron Software und ein visionärer Ingenieur, der führend in der C# PDF-Technologie ist. Als ursprünglicher Entwickler der Iron Software-Kerncodebasis hat er die Produktarchitektur des Unternehmens seit seiner Gründung gestaltet und zusammen mit CEO Cameron Rimington in ein Unternehmen ...

Weiterlesen