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