2017-02-20 5 views
0

나는 VS2015 Enterprice 에디션을 가지고있다. (CodedUI 프로젝트를 컴파일하는 데 필요하다. 내가 틀렸다면 나를 바로 잡는다.)다른 PC에서 msbuild를 사용하여 CodedUI 테스트 솔루션을 만들 수 있습니까?

프로젝트에는 일부 CodedUI 유닛 테스트가 있습니다.

1) I VS2015의 내 Dev PC에 솔루션을 빌드 할 수 있습니다. 2) 난 msbulid.exe solution.sln를 사용하여 내 데브 PC에 솔루션을 빌드 - 아무 문제. 3) 아니오 비주얼 스튜디오가있는 다른 PC (테스트 PC)가 있고 빌드 도구와 .NET 프레임 워크 만 설치되어 있습니다. 내가 MSBuild.exe를 사용하여 솔루션을 구축 할 때 - 이 도구를 테스트와 관련된 오류가 있습니다

Assertion\Assert_WPF.cs(6,40): error CS0234: The type or namespace name 'UITesting' does not exist in the namespace 'Microsoft.VisualStudio.TestTools' (are you missing an assembly reference?) 

내 질문 : 그것은 단지에 포함되어 CodedUI를 (포함하는 솔루션을 구축하기 위해 모든 가능 엔터프라이즈 버전) 테스트 컴퓨터에서 VS가 설치되어 있지 않은 경우?

+0

Ryanman의 제안에 따라이 문제는 어떻게됩니까? 이 문제에 대한 최신 정보를 알려주십시오. –

답변

1

이 문제도 발생했습니다. 매우 common입니다.

VS Enterprise를 설치하면 CodedUI .dll도 전역 어셈블리 캐시에 설치됩니다. 이것은 UI 테스트를 실행할 수있게합니다. dev 컴퓨터의 프로젝트에서이 프로젝트를 참조합니다.

다른 곳에서 실행하려고하면이 .dll을 검색하고 찾지 않습니다.

  1. 당신이 nuget 패키지 (또는 이에 상응하는 솔루션을) 작성
  2. 에서 테스트를 구축하려는 시스템에 대한 엔터프라이즈 라이센스에 ~ $ 3K를 지출이 포함

    당신은 두 가지 옵션이 있습니다 필요한 codedUI .dll. GAC가 아닌이 패키지를 참조하도록 프로젝트를 업데이트하십시오 (이 작업은 상당히 어렵습니다). 엔터프라이즈없이 시스템에 구축 할 때 패키지가 솔루션과 함께 전개되었는지 확인하십시오.

또한 GUCutil을 사용하여 codedUI .dll을 다른 컴퓨터의 GAC로 산탄 총으로 찍을 수도 있지만 권장하지 않습니다.

0

죄송합니다. 그런 오래된 질문으로 게시했지만 어제 같은 문제가 발생했습니다.

Ryanmans 대답이 맞을 수도 있지만 그 문제에 대한 또 다른 해결 방법이 있습니다. 당신이 관련 .csproj 내부를 살펴 경우이 비슷한을 찾을 파일 :

<Choose> 
<When Condition="'$(VisualStudioVersion)' == '10.0' And '$(IsCodedUITest)' == 'True'"> 
    <ItemGroup> 
    <Reference Include="Microsoft.VisualStudio.QualityTools.CodedUITestFramework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> 
     <Private>False</Private> 
    </Reference> 
    <Reference Include="Microsoft.VisualStudio.TestTools.UITest.Common, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> 
     <Private>False</Private> 
    </Reference> 
    <Reference Include="Microsoft.VisualStudio.TestTools.UITest.Extension, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> 
     <Private>False</Private> 
    </Reference> 
    <Reference Include="Microsoft.VisualStudio.TestTools.UITesting, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"> 
     <Private>False</Private> 
    </Reference> 
    </ItemGroup> 
</When> 
</Choose> 

특정 비주얼 스튜디오 버전을 사용할 때 참조 만 사용되는 볼 수 있듯이. 이제 msbuild를 사용하면 정확하게 오류를 볼 수 있습니다. 참조가 실제로 누락 되었기 때문입니다. 해결 방법은 문제의 프로젝트에 조건부 컴파일을위한 기호를 할당하는 것입니다. (오른쪽 클릭 -> 속성). 당신보다 지금처럼 MSBuild를 명령에 매개 변수로 심볼을 사용할 수 있습니다

/p:DefineConstants="YourSymbolName" /t:Rebuild 

이 나를 위해 이러한 오류를 수정하고 서버를 구축 프로젝트가 잘 구축합니다.