Сбой сборки TFS при сбое одиночного модульного теста - PullRequest
5 голосов
/ 16 сентября 2009

Устанавливая CI в Microsoft Team Foundation Server, у меня есть сборка, которая будет строить решение и выполнять все модульные тесты в решении.

В настоящее время сборка будет отображаться как частично успешная, если сборка прошла успешно, а тестовый модуль не пройден. Я хотел бы показать сборку как сбойную при неудачном модульном тесте.

Может кто-нибудь сказать мне, если есть способ выполнить эту функцию?

1 Ответ

3 голосов
/ 16 сентября 2009

Если на вашем компьютере сборки установлен VS2008 SP1, вы можете просто добавить следующее свойство в ваш файл TFSBuild.proj:

<TreatTestFailureAsBuildFailure>true</TreatTestFailureAsBuildFailure>

Если у вас не установлен SP1 и вы не хотите его устанавливать, то вы можете сделать это по старинке, как описано здесь, руководителем разработки в команде TFS Build, Аарон Халлберг :

  <Target Name="AfterTest">

    <!-- Refresh the build properties. -->
    <GetBuildProperties TeamFoundationServerUrl="$(TeamFoundationServerUrl)"
                        BuildUri="$(BuildUri)"
                        Condition=" '$(IsDesktopBuild)' != 'true' ">
      <Output TaskParameter="TestSuccess" PropertyName="TestSuccess" />
    </GetBuildProperties>

    <!-- Set CompilationStatus to Failed if TestSuccess is false. -->
    <SetBuildProperties TeamFoundationServerUrl="$(TeamFoundationServerUrl)"
                        BuildUri="$(BuildUri)"
                        CompilationStatus="Failed"
                        Condition=" '$(IsDesktopBuild)' != 'true' and '$(TestSuccess)' != 'true' ">

  </Target>
...