2011-03-10 3 views
3

Visual Studio DOM과 상호 작용하고로드 된 솔루션을 수정하는 Visual Studio 추가 기능을 개발했습니다.
DOM과 상호 작용하는 코드와 단위 테스트를 통해 다른 비즈니스 로직을 테스트 할 수있는 코드를 분리하는 데 노력했지만, VS DOM 상호 작용 기능과 사용자 정의 메뉴를 추가하는 추가 기능 초기화 코드의 단위 테스트 방법이 있습니까? 항목을 Visaual Studio에 보냅니 까?VS DOM과 상호 작용하는 Visual Studio AddIn 단위 테스트 방법

+1

이것은 내가 계속 문제를 풀고있는 문제입니다. 지금까지 내가 할 수 있었던 최선의 방법은 인터페이스를 조롱하고 VS가해야 할 일에 대한 내 기대에 따라 테스트를 수행하는 것입니다. – Kell

답변

1

이 답변을 어떤 방법으로 갈 수 있습니다 ... 나는 내 단위 테스트에서 사용할 수있는 DTE VS 인스턴스를 만들 코드 샘플을 가지고 있는데,이 클래스는 다음과 상호 작용합니다. VS, 그런 다음 DTE 개체를 분석하여 테스트 성공 기준을 확인하십시오. 나는 시험에서 그것을 시험에 둥글게 가지고 havent하지만 그것은 유망 보인다.

 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(); 
      } 
+1

이것은 또한 발생할 수있는 타이밍 문제에 대한 도움을 제공합니다. http://msdn.microsoft.com/en-us/library/ms228772(VS.80).aspx – gouldos

+1

http : // social에서 Carlos J.Quintero의 대답은 어떻습니까? .msdn.microsoft.com/Forums/eu/vsx/thread/294b37ac-3deb-47a1-943b-cb26f147f93e? – Kiquenet

+0

아마도 System.Runtime.InteropServices.COMException (0x80080005)과 같은 오류 일 수 있습니다. 다음 오류로 인해 CLSID가 {656D8328-93F5-41A7-A48C-B42858161F25} 인 구성 요소의 COM 클래스 팩터 리를 검색하지 못했습니다. 80080005 서버 실행이 실패했습니다 (HRESULT : 0x80080005 (CO_E_SERVER_EXEC_FAILURE)). – Kiquenet

관련 문제