Thanks for replying to my comment. I think I can suggest you a possible solution, and I haven't tried this by myself. But I believe this is do-able. This suggesion is more of a programtic approach mixed with some built-in command line options provided by each test framework you mentioned (NUnit, MSTest, xUnit).
If all of these test frameworks have the ability to execute tests, whether it is selectively, as a group, or as an entire test suite by the command line, you can always use Console App, with predefined parameters to execute these tests as you desired.
As far as I know all of these test frameworks provides command line test runners and options. But they can be differed based on the options they provide.
First thing is to analyse each of these test framework's ability provide command line arguments so you can execute tests as you desired.
MSTest.exe Command Line provide some options you might want to look into.
Are some of the options you can look into.
NUnit console also provide some options. But I haven't looked into this much yet.
XUnit has a Console Test runner which you can look into more (i.e xunit.console MyTestLibrary.dll).
It is important to note that, both xUnit.NET and NUnit are extensible. So if you don't have the options you need, you can look at extending what has provided by the framework. Even go down the path that creating your own console runner is not that hard. Un-like MSTest, both of these frameworks are open source so you can see the options they have provided. Given that running tests selectively is a key requirement I would imagine that these frameworks have built-in options and you don't have to do much customizations.
Once you have identified abilities of these framework's Console counterparts, you can then proceed on creating your client app/console app, which you can specify the tests to run selectively. This client app would feed tests selectively to each runner and execute Console.exe's. This should run your tests selectively and accordingly. You can further automate this by providing some sort of a configurable metadata/manifest file. For example you can specify variety of tests to run from a metadata or manifest file, and your console runner would read from the metadata files.
Based on your client app configuration, if it is a Console app, you can also invoke via the build system.
Hope this would point you to a direction what you want to achieve.