I use Microsoft.QualityTools.Testing.Fakes to mock some unit tests.
But this assembly is only available to users with VisualStudio Ultimate.
Users of other publications (Professional) cannot create and run this test project, and this gives an error in their environment.
So, I created a compiler directive to handle this:
#define Ultimate
#if Ultimate
using Microsoft.QualityTools.Testing.Fakes;
#endif
And my testing method:
#if Ultimate
using (ShimsContext.Create())
{
... My code
}
#else
Assert.Inconclusive("This test needs VS Ultimate to run");
#endif
This works fine, but the user still needs to comment / uncomment the definition line.
So, is there a way to pass my VS Edition to the compiler? Or is there a different approach?
source
share