Skip to content

Repository files navigation

Dotnet In Memory Assembly Testing

NugetNugetMemory Test CIJoin us on DiscordDonate

Memory Test presents an easy way to test dotnet assemblies, without external processes, in memory. This is achieved by invoking XUnit or NUnit directly instead of using VsConsole or DotnetTest. Memory Test provides a simple to use abstraction while at the same time exposing underlying framework details for usability purposes.

Features

  • XUnit Support
  • NUnit Support

the support for test assembly versions depends on backwards compadibility of the test host, memory test uses the newest versions

Getting Started

1. Instantiate a Test Host Runner

vartestHostRunner=newXUnitTestHostRunner("path to test assembly");vartestHostRunner=newNUnitTestHostRunner("path to test assembly");

2. Register Event Handlers

testHostRunner.TestStart+=OnTestStart;testHostRunner.TestEnd+=OnTestEnd;testHostRunner.TestSessionStart+=OnTestSessionStart;testHostRunner.TestSessionEnd+=OnTestSessionEnd;privatestaticvoidOnTestSessionStart(object?sender,TestSessionStarte){Console.WriteLine($"Test session start [{e.StartTime:hh:mm:ss t z}]");}privatestaticvoidOnTestSessionEnd(object?sender,TestSessionEnde){Console.WriteLine($"[{e.EndTime:hh:mm:ss t z}]: Passed: {e.Passed}, Failed: {e.FailedTests}, Skipped: {e.Skipped}, Run Result: {e.TestOutcome}");}privatestaticvoidOnTestEnd(object?sender,TestEnde){Console.WriteLine($"[{e.TestOutcome}] Test Finish [{e.StartTime:hh:mm:ss t z}/{e.EndTime:hh:mm:ss t z}]: {e.TypeName} | {e.TestName}");}privatestaticvoidOnTestStart(object?sender,TestStarte){Console.WriteLine($"Test case start: {e.TypeName} | {e.TestName}");}

3. Run The Test Host

testHostRunner.RunTestsAsync(CancellationToken.None).Wait();// or use await

4. Done That's it. Enjoy testing!

Configuring

NUnit:

XUnit:

About

In memory assembly test abstraction over XUnit and NUnit.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages