2012-01-05 4 views
1

일부 단위 테스트에서 두더지를 만들려고 시도하면서 일부 기능이 '털썩'되지 않는다는 사실을 발견했습니다. 일부 기능은 xxx.moles.xml 파일에 표시되지만 일부 기능은 xxx.moles.xml 파일에 표시됩니다. 두형 생성으로 모든 개체가 생성되지 않는다

, 나는 컴퓨터를 다시 시작의 MolesAssembly 폴더에있는 파일을 삭제, 'PEX와 두더지'를 다시 설치 해봤이 문제를 해결하려면 등

마지막으로, 나는 단순히 콘솔 창을 열고 두더지를 달렸다. 명령 프롬프트에서 exe 명령을 실행하십시오.

두더지 : 정보 : 편집 : 조립 메타 데이터의 해시 변경, 코드 생성을 건너 뛰는

"c:\program files\microsoft moles\bin\moles.exe" assembly.dll /op:"MolesAssemblies" /msbuild:"c:\windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe" 

내가 이것을 실행 처음으로, 나는 메시지를 받았습니다.

MolesAssemblies 폴더에서 두더지를 삭제 한 후 moles.exe 명령을 다시 실행하면 모든 기능이 xxx.moles.dll 및 xxx.moles.xml 파일에 나타납니다.

왜 사람이 왜 Visual Studio 2010에서 건물을 만들 때 작동하지 않는지 알고 있지만 명령 프롬프트에서 완벽하게 작동합니까?

답변

2

문제점을 발견했습니다. 이전에 .moles 파일을 수정했으며 특정 클래스 만 추가되었습니다. 나는 단순히 더 많은 'TypeName'을 추가해야했고 클래스/함수가 포함되었습니다.

moles.exe 명령을 사용하여 '작업 한'이유는 .moles 파일을 사용하지 않았기 때문입니다 (단순히 어셈블리를 참조했습니다). .mole 파일과 어셈블리를 포함하기 위해 moles.exe의 매개 변수를 변경했는데 그 결과는 Visual Studio에서 생성 된 출력과 동일합니다. 코드의 다른 부분이 깨지는 것을 발견하면 .moles 파일이 잘못되었음을 알게되었습니다.

나는 이런 식으로 뭔가를했다 ...

<Moles xmlns="http://schemas.microsoft.com/moles/2010/" > 
    <Assembly Name="Assembly.name" /> 
    <StubGeneration> 
     <Types> 
      <Clear /> 
      <Add FullName="Fullname_1_0" /> 
     </Types> 
    </StubGeneration> 
    <MoleGeneration> 
     <Types> 
      <Clear /> 
      <Add FullName ="Fullname_1_0" /> 
     </Types> 
    </MoleGeneration> 
</Moles> 

나는 두 번째는

<Moles xmlns="http://schemas.microsoft.com/moles/2010/" > 
    <Assembly Name="Assembly.name" /> 
    <StubGeneration> 
     <Types> 
      <Clear /> 
      <Add FullName="Fullname_1_0" /> 
     </Types> 
    </StubGeneration> 
    <MoleGeneration> 
     <Types> 
      <Clear /> 
      <Add FullName ="Fullname_1_0" /> 
      <Add TypeName="AdditionalClass"/> 
     </Types> 
    </MoleGeneration> 
</Moles> 
0

하는 moled 된 어셈블리를 수정 한 후, 테스트 프로젝트를 다시 확인 '추가'를 필요로했다. 테스트 프로젝트에서 "클린"동작을 사용하면이 문제가 해결됩니다.