2017-02-20 4 views
0

私はVS2015 Enterprice版を持っています(これはCodedUIプロジェクトをコンパイルするために必要です - 私が間違っていれば私を修正してください)。別のPCでmsbuildを使用してCodedUIテストソリューションを構築できますか?

プロジェクトには、CodedUI単体テストがいくつかあります。

1)I VS2015で私のDev PCにソリューションを構築しても問題ありません。 2)I msbulid.exe solution.slnを使用して私のDev PCにソリューションをビルドします。問題ありません。 3)私はいいえビジュアルスタジオは、ビルドツールと.Netフレームワークだけがインストールされている別のPC(テストPC)があります。私はの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を過ごし含まれています

    は、2つのオプションがあります必要なcodedUI .dll。 GACではなくこのパッケージを参照するようにプロジェクトを更新します(これはかなり難しいことに注意してください)。エンタープライズを使用せずにマシンにビルドするときは、パッケージがソリューションと共に展開されていることを確認してください。

GACUTILを使用して、codedUI .dllを他のマシンのGACにショットガンすることもできますが、これはお勧めできません。

0

このような古い質問を投稿して申し訳ありませんが、私は昨日同じ問題に遭遇しました。

Ryanmansの回答は正しいかもしれませんが、私が見つけたその問題に対するもう一つの回避策があります。あなたが特定のVisual Studioのバージョンを使用する場合の参照のみが使用されている見ることができるように

<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> 

:あなたは、関連する.csprojファイル内で見てみる場合は、これに似た何かを見つけるでしょう。 msbuildを使用すると、正確にエラーが表示されます。参照は実際には存在しないためです。 回避策は、問題のプロジェクトに条件コンパイルのシンボルを割り当てることです。 (右クリック→プロパティ)。あなたはよりそうのようなMSBuildのコマンドのパラメータとして、そのシンボルを使用することができます :

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

これは私のために、これらのエラーを修正し、私たちのビルドサーバーは、プロジェクトがうまく構築します。

関連する問題