Como en el laboratorio anterior, utilizamos el comando "mvn archetype:generate" y configuramos el proyecto con los datos suministrados. Grupo: edu.eci.cvds Artefacto: Library Paquete: edu.eci.cvds.tdd archetypeArtifactId: maven-archetype-quickstart
Para esto buscamos en el repositorio de maven la penultima version mas reciente de JUnit(5.11.4), por medio del siguiente link "https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-api/5.11.4" y agregamos al pom.xml
se crearon y posteriormente agregaron todos los codigos suministrados de cada clase, cada una en la respectiva ruta dada
para el método addBook se crearon las siguientes pruebas:
1.testAddBookWhenNotExist
2.testAddIncreaseBookWhenNotExist
3.testAddBookWhenAlreadyExists
4.testAddIncreaseBook
5.testNotAddBookWhenItIsNull
6.testNotAddIncreaseBook
7.testNotAddDifferentIsbnBook
8.testNotAddNullIsbnBook
9.testNotAddBookWhenRepeatIsbn
para el método loanABook se crearon las siguientes pruebas:
1.testLoanABook
2.testNotLoanABookWhenUserNotExist
3.testNotLoanABookWhenBookNotExist
4.testNotLoanABookWhenUserHasIt
5.testNotLoanABookWhenBookIsNotAvailable
6.testNotLoanABookWhenUserOrBookIsNull
finalmente para el método returnLoan se crearon las siguientes pruebas:
1.testNotReturnABookWhenLoanIsNull
2.testReturnALoan
3.testNotReturnALoanAlreadyReturned
4.testAddIncreaseBooksWhenLoan
Al realizar el diseño de las pruebas y su respectivo método, se crearon ramas feature para evitar trabajar sobre la rama principal, a medida de completar una funcionalidad se realizó PR sobre la rama develop, esto para cuando trabajemos en una nueva funcionalidad podamos tener los archivos actualizados, ya que cada rama feature se "desprende" de la rama develop. Aqui hemos realizado los PR por cada funcionalidad
Al realizar terminar cada feature se verifico que las pruebas siguieran funcionando, tanto las ya realizadas como las recién hechas, para cada feature no tuvimos problemas con interrumpir otras pruebas, al finalizar todas las implementaciones realizamos las pruebas para verificar que todas pasen.
La clase LibraryTest. java fue creada dentro de la ruta edu.eci.cvds.tdd.Library,
Instalamos sonarqube por medio del siguiente link
https://docs.docker.com/desktop/setup/install/windows-install/
teniendo docker ya instalado, procedemos a realizar el comando "docker pull sonarqube"
utilizamos el comando docker run -d --name sonarqube -e SONAR_ES_BOOTSTRAP_CHECKS_DISABLE=true -p 9000:9000 sonarqube:latest
la validación de que docker funciona se puede revisar tanto por consola "docker ps -a" como por la aplicación
iniciamos sesion con las credenciales dadas, nueva contraseña: cvdsMG20251%
ahora vamos a modificar los tokens
- Account -> security -> generate token.
vamos a generar un token de prueba
Ahora, estamos manejando el entorno intellij por medio de los pluggins
Se reconstruye el proyecto usando "mvn package"
una vez descargado el plugin de SonarQube, se utiliza el comando:
mvn verify sonar:sonar -D sonar.token=sqa_4e8080da17edea921081be4f5a348d1941683156
Para terminar, el reporte de SonarQube se ve de esta forma:
Y desde Docker se ve de esta forma el reporte:
























