Это может пойти каким-то образом, чтобы ответить на это ... У меня есть пример кода для создания экземпляра DTE VS, который я надеюсь затем использовать в своем модульном тесте для внедрения в мой класс, который взаимодействует с VSи затем, надеюсь, проанализировать объект DTE, чтобы подтвердить критерии успеха испытаний.Я не успел попробовать его в тесте, но он выглядит многообещающе.
DTE2 dte = null;
try
{
Type type = System.Type.GetTypeFromProgID("VisualStudio.DTE.10.0");
object inst = System.Activator.CreateInstance(type, true);
dte = (EnvDTE80.DTE2)inst;
dte.Solution.Open(@"C:\Demo.sln");
// Inject into class under test
// Perform the test
// Analyse the DTE to test for success.
}
finally
{
if (dte != null)
{
dte.Quit();
}