Captin.ConsoleIntercept
2.0.0
dotnet add package Captin.ConsoleIntercept --version 2.0.0
NuGet\Install-Package Captin.ConsoleIntercept -Version 2.0.0
<PackageReference Include="Captin.ConsoleIntercept" Version="2.0.0" />
paket add Captin.ConsoleIntercept --version 2.0.0
#r "nuget: Captin.ConsoleIntercept, 2.0.0"
// Install Captin.ConsoleIntercept as a Cake Addin #addin nuget:?package=Captin.ConsoleIntercept&version=2.0.0 // Install Captin.ConsoleIntercept as a Cake Tool #tool nuget:?package=Captin.ConsoleIntercept&version=2.0.0
Console Out Observer
Capture and observe Console output written by methods such as Console.WriteLine. It also leaves the original console output stream intact.
This is useful for temporarily capturing logging during integration or unit testing of your own code.
This is NOT useful for permanent silencing of Console.Out.
This is NOT useful for capturing output of an externally started program. For
that you will want to look into usage
of System.Diagnostics.Process
.
Installing / Getting started
- Install the Captin.ConsoleIntercept NuGet package
- Add the NuGet package to your project
- Observe Console output in a test
using Captin.ConsoleIntercept; using Xunit; [Fact] public void Test1() { System.Console.Write("not observed"); using(var logged = ConsoleOut.Observe()) { System.Console.Write("log (sent to real console too)"); Assert.Equal("log (sent to real console too)", logged.ToString()); } System.Console.Write("not observed (and real console is restored)"); }
Features
- Capture console output cleanly with a using statement
using(var logged = ConsoleOut.Observe()) { ... }
- Nested
using
statements supportedusing(var a = ConsoleOut.Observe()) { Console.WriteLine("a"); using(var b = ConsoleOut.Observe()) { Console.WriteLine("a and b"); } }
- Leaves standard
Console.Out
intact even when observingusing(var logged = ConsoleOut.Observe()) { Console.WriteLine("'logged' (and original console too)"); }
- NOT thread safe. Running tests in parallel that both capture output may cause
observing logs from
Test1
to show up inTest2
Developing
Here's a brief intro about what a developer must do in order to start developing the project further:
- Clone the project
git clone https://github.com/captin411/Captin.ConsoleIntercept.git
- Open the solution in Visual Studio.
Contributing
Pull requests are welcome.
If you want to contribute, please fork the repository and use a feature branch.
It would be AWESOME if you add in a test to cover any new behavior or bug fixes that you might have.
Links
- Project: https://github.com/captin411/Captin.ConsoleIntercept
- Nuget Package: https://www.nuget.org/packages/Captin.ConsoleIntercept/
Licensing
The code in this project is licensed under MIT license.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.