2012-10-28 2 views
3

SP1과 함께 VS2010을 사용하고 있습니다 (같은 컴퓨터에 VS2012도 설치되어 있음). 두더지 1.0 이 프로젝트는 컴파일Ttt for HttpWebRequest에서 Moles 사용

형식 또는 네임 스페이스 이름 'IReadOnlyList는'네임 스페이스에 존재하지 않는 오류 46 '은 System.Collections에 다음과 같은 오류를 System.dll을 얻을하는 내가 조립 몰수를 추가 .NET 4 을 사용하고 있습니다 C : \ Test \ obj \ Debug \ Moles \ s \ mgcsproj] C : \ Test \ mgcs 테스트

IReadOnlyList .NET 4.5 내가 아는 한. .

누구든지이 문제가 있습니까?

+1

.NET 4.5 및 두더지를 사용하면 두더지가 .net 4.5 어셈블리를 반영하려고합니다. 해결 방법은 [여기] (http://research.microsoft.com/en-us/projects/moles/molesdev11.aspx)에 설명되어 있지만 mscore의 예제 만 제공합니다. system.net을 사용하려면 더 많은 것을 추가해야합니다 태그 – Haroon

+0

감사합니다, Haroon. 이 문제점을 해결하기 위해 System.Net 어셈블리에 사용했던 태그는 무엇입니까? –

+1

특정 네임 스페이스를 제거하려면 제거 태그를 추가합니다. 어셈블리 Haroon

답변

0

업데이트 됨 .Net Framework 4.5가 설치된 VS 2010에서 Pex를 실행할 수있었습니다. 어쩌면 다른 사람들이 이것이 해결책이라고 설명했을 지 모르지만 내 문제 (Moles와 Pex에 익숙하지 않음)는 많은 설명이 모호하다는 것입니다.

http://feherzsolt.wordpress.com/2013/02/13/moles-and-net-4-5/

http://www.daedtech.com/using-moles-with-the-system-assembly

그래서이 솔루션은 테스트에 새로운 .moles 파일 (System.moles)을 만드는 것입니다 : 그들은 나를 올바른 방향으로 향했다 때문에이 글의 저자 덕분에 Pex가 yourAssemblyUnderTest.moles 파일을 만든 동일한 레벨의 프로젝트를 만들고 파일에 다음을 추가합니다.

<Moles xmlns="http://schemas.microsoft.com/moles/2010/"> 
    <Assembly Name="System" ReflectionOnly="true" /> 
</Moles> 

(수동으로 obj 폴더 내용을 지우고) 다시 작성해야하지만이 솔루션이 저에게 효과적 일 수 있습니다. 첫 번째 빌드는 빌드 오류를보고하지만 오류는 후속 빌드에서 사라질 것입니다.

대체 솔루션 나는이 솔루션 아니라는 것을 알고 있지만 PEX을 실행할 수 있도록 (가난한) 해결 방법입니다 ... 플러스이 너무 오래 코멘트했다. 누구든지 PEX를 4.5 .Net Framework가있는 컴퓨터에서 실행하는 방법을 알고 있다면 알려주십시오.

이것은 내 시나리오입니다. .Net Framework 4.5가 설치된 컴퓨터가 있고 Visual Studio 2010과 2012가 설치되어 있습니다. Pex (en_visual_studio_2010_pex_0.94.51023.0_power_tools_x64_598803.exe)를 설치했고 .Net Framework 4.0을 대상으로하는 VS 2010 프로젝트에서 Pex를 실행할 수있었습니다. 나는 PEX를 실행할 수 있으며 문제를 발견 ...하지만이 장치에 문제를 추진하면 단위 테스트 프로젝트 때문에 많이 검색 한 후 다음 빌드 오류

The type or namespace name 'IReadOnlyList' does not exist in the namespace 'System.Collections.Generic' (are you missing an assembly reference?) 

의 컴파일되지 것 테스트, 독서 PEX 또는 두더지 그 4.5 .Net Framework 어셈블리를 4.0 버전으로 대체했습니다. 4.5를 제거하고 4.0을 설치하기로 결정했습니다. 4.0에서 실행되는 것은 정상적으로 작동하며 작동하려면 몰 타입 필터를 정의 할 필요가 없습니다. 그런 다음 다시 4.5 프레임 워크로 업그레이드하려고 시도했지만 ... 슬프게도 IReadOnlyList 네임 스페이스 문제로 시작한 곳으로 돌아 왔습니다.

+0

나는 VS2012와 Moles를 포기했다. VS2012 Ultimate는 가짜 2.0 버전으로 Fakes를 보유하고 있습니다. – Haroon

관련 문제