Как выполнить модульное тестирование Visual Studio AddIn, взаимодействующего с VS DOM - PullRequest
3 голосов
/ 10 марта 2011

Я разработал надстройку Visual Studio, которая взаимодействует с DOM Visual Studio и вносит поправки в загруженное решение.
Хотя я постарался отделить код, который взаимодействует с DOM, и может выполнить модульное тестирование другой бизнес-логики с помощьюмодульные тесты, есть ли способ модульного тестирования функциональности взаимодействия VS DOM и кода инициализации надстройки, который добавляет пользовательские пункты меню в Visaual Studio?

1 Ответ

1 голос
/ 31 марта 2011

Это может пойти каким-то образом, чтобы ответить на это ... У меня есть пример кода для создания экземпляра 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();
            }
...