Запуск тестов XUnit с TeamCity с использованием MSBuild

Я пытаюсь заставить TeamCity запускать тесты XUnit как часть процесса сборки. Поэтому я создал отдельный файл - MyProject.msbuild - в той же папке, что и файл.sln, который выглядит следующим образом:

<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

  <UsingTask AssemblyFile="$(MSBuildProjectDirectory)\..\bin\xunit.net\xunit.runner.msbuild.dll" TaskName="Xunit.Runner.MSBuild.xunit"
             />

    <Target Name="Build">
      <MSBuild Projects="MyProject.sln" Targets="Build" Properties="Configuration=Release">
        <xunit Assembly="MyProject.Utility.Tests\bin\Release\MyProject.Utility.Tests.dll" />
      </MSBuild>
    </Target>

</Project>

Тем не менее, независимо от того, что я делаю, VS2010 ненавидит меня иметь элемент внутри элемента. Если я запускаю MSBuild для файла, он говорит мне немного больше:

P:\MyProject\src>c:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe MyProject.msbuild /tv:4.0 /v:d
Microsoft (R) Build Engine Version 4.0.30319.1
[Microsoft .NET Framework, Version 4.0.30319.225]
Copyright (C) Microsoft Corporation 2007. All rights reserved.

Build started 08.11.2011 21:08:46.
Project "P:\MyProject\src\MyProject.msbuild" on node 1 (default targets).
Building with tools version "4.0".
P:\MyProject\src\MyProject.msbuild(8,9): error MSB4067: The element <xunit> beneath element <MSBuild> is unrecognized.
Done Building Project "P:\MyProject\src\MyProject.msbuild" (default targets) -- FAILED.


Build FAILED.

"P:\MyProject\src\MyProject.msbuild" (default target) (1) ->
  P:\MyProject\src\MyProject.msbuild(8,9): error MSB4067: The element <xunit> beneath element <MSBuild> is unrecognized.

    0 Warning(s)
    1 Error(s)

Time Elapsed 00:00:00.01

Таким образом, мое текущее предположение состоит в том, что он не может каким-то образом успешно загрузить xunit.runner.msbuild.dll - или я сделал что-то еще странное.

Тем не менее, я думаю, что если он не сможет загрузить xunit.runner.msbuild.dll, он скажет мне об этом. Я убедился, что файл не заблокирован (распаковав дистрибутив xunit с помощью 7zip).

Любые идеи, что я могу сделать, чтобы MSBuild проглотил мой файл сборки и запустить тесты?

1 ответ

Решение

Вы не хотите вкладывать звонки, попробуйте это:

<Target Name="Build"> 
    <MSBuild Projects="MyProject.sln" Targets="Build" Properties="Configuration=Release"> 
    </MSBuild> 
    <xunit Assembly="MyProject.Utility.Tests\bin\Release\MyProject.Utility.Tests.dll" /> 
</Target> 

Элементы в пределах цели выполняются в последовательности.

Другие вопросы по тегам