I am using Microsoft.QualityTools.Testing.Fakes to mock some unit tests.
But this assembly is only available to users with VisualStudio Ultimate.
Users with other editions (Professional) can't build and run this test project, and it gives an error on their environments.
So I have created a compiler directive to deal this:
#define Ultimate
#if Ultimate
using Microsoft.QualityTools.Testing.Fakes;
#endif
And my test method is:
#if Ultimate
using (ShimsContext.Create())
{
... My code
}
#else
Assert.Inconclusive("This test needs VS Ultimate to run");
#endif
This is working great, but a user still needs to comment/uncomment the define line.
So, is there a way to pass my VS Edition to the compiler? Or is there another approach?