Para hacer este proyecto he utilizado el lenguaje C# con el Framework de .NetCore y la librería SpecFlow + LivingDoc (Una librería de SpecFlow para la generación de reports)
- Se ha aplicado el principio de responsabilidad única.
- Se ha desacoplado la parte de infraestructura (Selenium) de mediante la creación de un servicio "IWebDriverService" y la implementación en concreto de este mediante Selenium "SeleniumWebDriverService". Con esto se consige el desacoplamiento con Selenium de tal manera que podemos cambiar de Selenium a otra tecnología sin afectar a la lógica de funcionamiento.
- Se ha utilizado la Orientación a objetos para centrarlizar el comportamiento en estos.
- Se ha aplicado el patrón PageObject para, como en los puntos anteriores, mejorar el mantenimiento de las pruebas y reducir el código replicado.
- Al utilizar Orientación a objetos lo anteriormente mencionado, no he considerado necesario aplicar el patrón builder ya que no me aportaba ningún beneficio en este punto y lo consideraba OverEngineering.
https://dotnet.microsoft.com/download
cd {pathHaciaElDirectorioDelProyecto}/src/MdasFdpPractica3
dotnet test
SpecFlow.Plus.LivingDocPlugin
Esta librería pertenece a SpecFlow y genera en el directorio de ejecución un fichero Json a partir del cual se generará el Report.
https://docs.specflow.org/projects/specflow-livingdoc/en/latest/LivingDocGenerator/Installing-the-command-line-tool.html
$HOME/.dotnet/tools
Para generar el report Ejecutar el siguiente comando reemplazando {pathHaciaElDirectorioDelProyecto} por la ruta hacia el proyecto:
Importante ejecutarlo desde la carpeta de nuget tools o exportarlo al path.
./livingdoc test-assembly {pathHaciaElDirectorioDelProyecto}/src/MdasFdpPractica3/bin/Debug/netcoreapp3.1/MdasFdpPractica3.dll -t {pathHaciaElDirectorioDelProyecto}/src/MdasFdpPractica3/bin/Debug/netcoreapp3.1/TestExecution.json
carloosx ~ | .dotnet | tools ./livingdoc test-assembly ~/Projects/SeleniumSpecFlow/src/MdasFdpPractica3/bin/Debug/netcoreapp3.1/MdasFdpPractica3.dll -t ~/Projects/SeleniumSpecFlow/src/MdasFdpPractica3/bin/Debug/netcoreapp3.1/TestExecution.json
/Users/carloosx/.dotnet/tools/LivingDoc.html was successfully generated.
/Users/carloosx/.dotnet/tools
carloosx ~ | .dotnet | tools tree
.
├── LivingDoc.html
└── livingdoc
0 directories, 2 files