.net - 如何对与 VS DOM 交互的 Visual Studio 插件进行单元测试

标签 .net unit-testing automated-tests vs-extensibility

我开发了一个 Visual Studio 插件,它与 Visual Studio DOM 交互并修改加载的解决方案。
虽然我已经努力分离与 DOM 交互的代码并可以通过单元测试对其他业务逻辑进行单元测试,但有没有办法对 VS DOM 交互功能和添加自定义菜单项的加载项初始化代码进行单元测试 Visual Studio ?

最佳答案

这可能会以某种方式回答这个问题......我有一个代码示例来创建一个 DTE VS 实例,我希望我可以在我的单元测试中使用它来注入(inject)我的类,它与 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();
            }

关于.net - 如何对与 VS DOM 交互的 Visual Studio 插件进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5259712/

相关文章:

java - 对于同一接口(interface)的多个实现,应该如何编写junit测试用例?

java - Struts 1.1 和 Servlet 2.5 - 测试期间 JspException 的 NoClassDefFoundError

ios - 带有 Auth0 : How to dismiss security alert “XXXX” Wants to Use “auth0.com” to Sign In 的 XCTestCase

c# - 为什么 NetworkChange.NetworkAddressChanged 事件触发两次?

.net - XslTransform 与 XslCompiledTransform

c# - Activator.CreateInstance() - 找不到构造函数

c# - 使用 CultureInfo 的语言和区域的自定义组合

django - 类' __str__ 的 Python 测试覆盖率

python-3.x - python : How can I press arrow keys randomly selenium

database - 如何为 Web 应用程序 GUI 测试分离数据库依赖性