2009-09-16 13 views
5

Configurando CI dentro de Microsoft Team Foundation Server, tengo una compilación que construirá la solución y ejecutará todas las pruebas unitarias dentro de la solución.Fail TFS Build on Single Unit Test Failure

Actualmente, la compilación se mostrará como parcialmente exitosa si la construcción es exitosa y una de las pruebas de la unidad falla. Me gustaría mostrar la compilación como fallida cuando falla una prueba de unidad.

¿Alguien me puede decir si hay una forma de lograr esta funcionalidad?

Respuesta

3

Si ha instalado SP1 de VS2008 en su máquina de construcción a continuación, sólo tiene que añadir la siguiente propiedad en el archivo de TFSBuild.proj:

<TreatTestFailureAsBuildFailure>true</TreatTestFailureAsBuildFailure> 

Si no ha instalado SP1 y que no desea instalarlo, a continuación, puede hacerlo de la antigua ruta de moda como se detalla here by the Dev Lead on the TFS Build team, Aaaron Hallberg:

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

Una vez que he instalado Team Foundation Server 2008 SP1 y añadí la propiedad que se enumeran más arriba en la sección "Propiedades adicionales" de la TFSBuild.proj funcionó perfectamente ¡Gracias por tu ayuda! – Sam