2009-10-21 4 views
7

CustomizableOutDirを使用している場合、TFSチームビルドでMSTest.exeを正常に起動できません。 <Properties>OutputPath=$(BinariesRoot)\TestHarness\</Properties><Properties></Properties>の両方でCustomizableOutDir = trueチームビルド中にMSTest.exeを破損します。

TFSBuild.rsp

/verbosity:diagnostic 
/p:CustomizableOutDir=true 

TFSBuild.proj(スニペットを構築するためのソリューション)

<!-- code --> 
    <SolutionToBuild Include="$(BuildProjectFolderPath)/../../foo.csproj"> 
     <Properties>OutputPath=$(BinariesRoot)\WindowsServices\foo\</Properties> 
    </SolutionToBuild> 
    <!-- tests --> 
    <SolutionToBuild Include="$(BuildProjectFolderPath)/../../test/test.sln"> 
     <Targets>t1;t2</Targets> 
     <Properties>OutputPath=$(BinariesRoot)\TestHarness\</Properties> 
    </SolutionToBuild> 

、私は、ビルドの最後に次のエラーが表示されます。

"C:¥build¥BuildType¥TFSBuild.proj" (TestConfiguration target MSB6003: 指定されたタスク実行可能ファイル "MSTest.exe" を実行できませんでした。ディレクトリ名 がthis articleを見つけた後

無効で、その後、私とは、追加された次の:

この与えた
<Target Name="AfterCompile"> 
    <ItemGroup> 
     <SolutionOutputs Condition="'%(CompilationOutputs.Solution)' == '$(Solution)'" Include="%(RootDir)%(Directory)**\*.*" /> 
     <ServiceOutputs Include="$(BinariesRoot)\WindowsServices\**\*.*" /> 
     <TestHarnessOutputs Include="$(BinariesRoot)\TestHarness\*.*" /> 
    </ItemGroup> 
    <Copy SourceFiles="@(SolutionOutputs)" DestinationFolder="$(TeamBuildOutDir)" /> 
    <Copy SourceFiles="@(ServiceOutputs)" DestinationFolder="$(TeamBuildOutDir)" /> 
    <Copy SourceFiles="@(TestHarnessOutputs)" DestinationFolder="$(TeamBuildOutDir)" /> 
    </Target> 

(AfterCompile目標を) - >
C: \ build \ BuildType \ TFSBuild.proj(289,5): エラーMSB3023:コピー先に指定されていない宛先は です。 "DestinationFiles"または "DestinationDirectory"のいずれかを指定してください。

DestinationDirectoryはスキーマhttp://schemas.microsoft.com/developer/msbuild/2003の一部ではありませんが、とにかく試してみました。だから私はDestinationDirectoryにコピータスクのすべてのDestinationFolderを変更し、私はこの得た予想として:

(AfterCompileターゲット) - >
C:\ \ BuildType \ TFSBuild.proj(288,44)を構築: をエラーMSB4064: "DestinationDirectory"パラメータが "コピー"タスクでサポートされていない です。 パラメータが タスクに存在することを確認します。設定可能な公開 インスタンスプロパティです。
C:\ build \ BuildType \ TFSBuild.proj(288,5): エラーMSB4063: パラメータで「コピー」タスク を初期化できませんでした。

CustomizableOutDirとMSTestは、TFSチームビルドと調和して協力してくれますか?

EDIT:

私はthis discussionを発見し、この変更を適用:

このもたらした
<Target Name="BeforeTest"> 
    <!-- The tests won't run if the binaries directory does not exist --> 
    <MakeDir 
    Directories="$(BinariesRoot)\%(ConfigurationToBuild.FlavorToBuild)" 
    Condition="!Exists('$(BinariesRoot)\%(ConfigurationToBuild.FlavorToBuild)')" /> 
</Target> 

"C:\ \ BuildType \ TFSBuild.projを構築する" ( RunTest target)(1:11) - > "C:¥build¥BuildType¥TFSBuild.proj" (TestConfiguration target)(1:12) - > (CoreTest設定対象) - >
MSBUILD:MSB6006警告: "MSTest.exeは、" これはTFS/MSTEST/MSBuildを幸せに作られたコード1

答えて

4

で終了しました。

<Target Name="BeforeTest"> 
    <!-- The tests won't run if the binaries directory does not exist --> 
    <MakeDir 
    Directories="$(BinariesRoot)\%(ConfigurationToBuild.FlavorToBuild)" 
    Condition="!Exists('$(BinariesRoot)\%(ConfigurationToBuild.FlavorToBuild)')" /> 
</Target> 

デプロイメントとテストボックスの設定では、テスト結果が得られないという問題がありました。

関連する問題