.NET Framework
dotnet publish -f net461
.NET Core
dotnet publish -f netcoreapp2.0
Mono
msbuild /p:TargetFramework=net461 /t:Restore
msbuild /p:TargetFramework=net461 /t:Rebuild
msbuild /p:TargetFramework=net461 /t:Publish
net461 build and tests
netcoreapp2.0 build and tests
net461 build and tests (Mono)
netcoreapp2.0 build and tests (.NET Core)
The Program
namespace contains the Main()
program code that sets up error
handlers, parses command line arguments, and takes appropriate top-level
actions.
The initial parent testrunner
process runs the test file(s) specified on the
command-line by reinvoking separate child testrunner
processes for each.
Child processes are instructed via command-line options to produce output in a
machine-readable format, which the parent interprets and combines into a unified
event stream for final analysis and output.
Child processes run test files by delegating to runner routines in the Runners
namespace. These routines activate test assembly .config
files, locate test
classes, and run initialize, test, and cleanup methods in the right order.
The runners interpret and interact with test assemblies through types in the
MSTest
namespace, which use reflection to discover, bind, and interact with
test assembly elements at runtime. These elements include the test assemblies
themselves, test classes, initialization, test, and cleanup methods, MSTest
attributes, and a TestContext
implementation.
As the runners execute tests, they emit events from the Events
namespace...
...into a pipeline of event handlers in the EventHandlers
namespace.
Individual handlers focus on single supporting responsibilities like
measurement, analysis, aggregation, and output. Distributing responsibility
across the runners and handlers keeps down their individual complexity.
As tests run, event handlers record results in types from the Results
namespace.
The Infrastructure
namespace contains general support functionality used
throughout the rest of the application.