# 12.6.6 Generando el reporte living doc de specflow

Specflow cuenta con un reporte llamado **Living doc** en el cual se muestra los pasos de tus pruebas y puede incluir los resultados del test

![](https://3731331968-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LKmGSg4qhizjqeDPHJC%2Fuploads%2F7SXw5xsZPJrCWHDjF9Y4%2Fimage.png?alt=media\&token=18b3a74f-27d2-429a-a3ae-d70e49d33b8a)

&#x20;Si desactivas el switch solamente se muestran los pasos en gherkin. Puedes seleccionar en el ejemplo por el combo o con el switch

![](https://3731331968-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LKmGSg4qhizjqeDPHJC%2Fuploads%2FNfMg0RzFQYs2afcQuI2d%2Fimage.png?alt=media\&token=5a9c3a93-4d6d-4bc0-a4f2-530c2b9224fb)

Se puede agregar una extensión a Azure DevOps para mostrar los resultados y en la sección de analytics se ven los resultados resumidos.

![](https://3731331968-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LKmGSg4qhizjqeDPHJC%2Fuploads%2FtpXEzD43yXYh7NsB0s9W%2Fimage.png?alt=media\&token=cd90a361-7466-4343-b37d-f3e7a59e8b0b)

### Configurando Specflow living doc en tu computadora

También puedes generar los reportes con CLI desde tu computadora.&#x20;

1. Instala la herramienta desde línea de comandos.

```
 dotnet tool install --global SpecFlow.Plus.LivingDoc.CLI
```

2\. Ejecuta los tests para que se genere un archivo TestExecution.json

3\. Ejecuta la herramienta puede ser con la dll generada en el debug/release.

```
livingdoc test-assembly C:\Work\CaducaRest.IntegrationTest\bin\Debug\net6.0\CaducaRest.IntegrationTest.dl
```

Puedes ver la documentación oficial \
\
<https://docs.specflow.org/projects/specflow-livingdoc/en/latest/LivingDocGenerator/Generating-Documentation.html>

### Configurando Specflow living doc en Azure Devops

1. Da clic en el market place desde Azure Devops.

![](https://3731331968-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LKmGSg4qhizjqeDPHJC%2Fuploads%2FDBElYmuPXGBbzzse3wcx%2Fimage.png?alt=media\&token=16a9fac5-09a1-42e3-b4c7-6050e909dbb6)

2\. Busca por la palabra specflow y selecciona **SpecFlow+LivingDoc.**

![](https://3731331968-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LKmGSg4qhizjqeDPHJC%2Fuploads%2FVO3VhxnJrno3YcaSFViO%2Fimage.png?alt=media\&token=f7e36959-28eb-47ad-b501-04fac161466e)

3\. Se muestra una página con la documentación. Da clic en Get it free.

![](https://3731331968-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LKmGSg4qhizjqeDPHJC%2Fuploads%2F2NPdoLbs2e9mkWZC7cjn%2Fimage.png?alt=media\&token=1c506b71-85f6-4d61-8ca0-a9b2ccada47b)

Selecciona la organización en este caso wb1521 y da clic en **Install**. Se incluye la opción download por si tu empresa tiene un servidor propio (on-prem) con el azure devops server instalado.

![](https://3731331968-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LKmGSg4qhizjqeDPHJC%2Fuploads%2FDMpaOaL7hwUR4wOSNhtG%2Fimage.png?alt=media\&token=fbeefb0a-032f-41b3-925a-173da0eea127)

Si todo es correcto, se muestra la siguiente imagen. Da clic en **Proceed to organization** para regresar a Azure Devops.

![](https://3731331968-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LKmGSg4qhizjqeDPHJC%2Fuploads%2FleBYrEF2svaYgKVrq4z0%2Fimage.png?alt=media\&token=aea85897-1fb7-49c4-9ce3-626f608c0951)

Ve a la opción de **Pipelines** y edita tu Pipeline. Agrega un renglón después del task de integration testing. En la sección de search busca Specflow y selecciona **SpecFlow+LivingDoc.**

![](https://3731331968-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LKmGSg4qhizjqeDPHJC%2Fuploads%2FbqaVVTd1BrOWWE2FyedK%2Fimage.png?alt=media\&token=ef941c39-a449-4ac1-b070-c915cd1c1e12)

Agrega los siguientes detalles

* Source: Selecciona **Test assembly** para probar la dll que contiene todos los test de specflow.
* Test assembly:  Selecciona el path donde esta la dll.  En este ejemplo es: $(Build.SourcesDirectory)/CaducaRest.IntegrationTest/bin/Debug/net6.0/CaducaRest.IntegrationTest.dll
* Test Execution JSON paths: Selecciona el path donde se genera el json en este caso es\
  $(Build.SourcesDirectory)/CaducaRest.IntegrationTest/bin/Debug/net6.0/TestExecution.json
* Project Language: Selecciona Spanish

![](https://3731331968-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LKmGSg4qhizjqeDPHJC%2Fuploads%2F0rKg2O2MW3YFOzP5qek7%2Fimage.png?alt=media\&token=7c2eb89c-5182-4a13-90ff-cea8fa2df1b7)

El código generado para este task es:

```yaml
- task: SpecFlowPlus@0
  displayName: Specflow plus
  condition: always()
  inputs:
    generatorSource: 'TestAssembly'
    testAssemblyFilePath: '$(Build.SourcesDirectory)/CaducaRest.IntegrationTest/bin/Debug/net6.0/CaducaRest.IntegrationTest.dll'
    projectName: 'Integration'
    testExecutionJson: '$(Build.SourcesDirectory)/CaducaRest.IntegrationTest/bin/Debug/net6.0/TestExecution.json'
    projectLanguage: 'es'
```

### Configurando Specflow living doc en Github Actions

Se pueden agregar pasos en Github actions para mostrarlo como Github pages de esta forma se tiene el último resultado de las pruebas.

Puedes publicar el resultado del test en el pipeline en la opción de github pages para tener el último estado de los test en una página web. <https://apis3445.github.io/CaducaRest/#/document/Standalone>&#x20;

Para mayor información sobre las opciones para publicar sigue esta guía&#x20;

<https://github.com/peaceiris/actions-gh-pages>

Esta github action te publica un artifact en una branch gh-pages. Luego puedes seguir esta guía para configurar que tu github pages se publique automáticamente desde una branch

<https://docs.github.com/en/pages/quickstart>\
\
Puedes practicar y consultar mi solución en el código de ejemplo en github.  <https://github.com/apis3445/CaducaRest/blob/master/.github/workflows/dotnet.yml><br>
