machine / machine.specifications

Machine.Specifications is a Context/Specification framework for .NET that removes language noise and simplifies tests.
MIT License
886 stars 178 forks source link

Remove the AppDomain and Remoting code #307

Open ivanz opened 8 years ago

ivanz commented 8 years ago

In potential scenario where .NET CLI and .NET Core picks up and takes over the .NET world we should think about whether we want to keep (and maintain) the AppDomain test runner interface in Machine.Specifications. An AppDomain runner wrapper around the [reflection-based Test Controller] can be added to the test runner util

This is open to discussion and is likely not going to happen any time soon.

fschmied commented 8 years ago

@ivanz How will the test runner support project-specific app.config files without AppDomain and Remoting code?

ivanz commented 8 years ago

@fschmied Good question.

The current use of remoting in the Machine.Specifications code is for IPC and to enable a version-independent interface. Given that we now have a reflection-based test controller protocol (similarly to nunit and xunit) - there is no reason to have dependency on remoting in the core of MSpec. That doesn't mean that the test runner utility can't continue to create and run tests in AppDomains (it does this already) - just not use it for the version-independency.

Not having a remoting (appdomains, binary serialization, etc) dependency in the core of MSpec makes the core much more portable.