Quickstart
Platform CLI (One CLI to rule them all)¶
La interfaz de la línea de comandos (CLI) de Platform es una cadena de herramientas multiplataforma para crear repositorios y proyectos Platform (API/Worker).
Prerequisitos¶
- Instalar Net 8
- Instalar Visual Studio 2022 (v17.8) o superior
- Configurar github packages
Instalacion¶
Se debe ejecutar el siguiente commando para instalar la CLI de manera global
dotnet tool install dotnet-platform -g
Actualizacion¶
En caso de tener instalada la herramienta y querer actualizar a la version mas reciente, ejecutaremos el siguiente comando:
dotnet tool update dotnet-platform -g
Crear un Proyecto Platform¶
Como se menciono anteriormente, existen 2 tipos de aplicaciones, Platform Worker y Platform API (CleanArchitecture). Procederemos a crear una aplicación Platform ejecutando el siguiente comando.
platform create proj
El comando nos pedira una serie de datos, como el nombre del proyecto (.csproj), y te dará las opciones para seleccionar el template. Una vez creado el proyecto, se creará la solucion con el mismo nombre que se le fue asignado anteriormente introduciendo los proyectos del template elegido
Api¶
Una vez ejecutado el comando podremos ver una estructura como la siguiente.
.
├── src
│ └── Application
| | ├──Boopstrap
| | ├──Common
| | | └── Interfaces
| | | └── Models
| | ├──UseCase
| |
| └── Domain
| | └── Common
| | └── Entities
| | └── Enums
| | └── Exceptions
| | └── ValueObjects
| |
| └── Infrastructure
| | └── Boopstrap
| | └── EventHandler
| | └── Persistence
| |
| └── WebApi
| └── Properties
| └── Controllers
| └── Models
│ └── appsettings.Development.yml
| └── appsettings.Production.yml
│ └── appsettings.yml
│ └── Program.cs
│
├── .gitignore
├── Dockerfile
├── README.md
Worker¶
Una vez ejecutado el comando podremos ver una estructura como la siguiente.
.
├── src
│ └── Application
| | ├──Boopstrap
| | ├──Common
| | | └── Interfaces
| | | └── Models
| | ├──UseCase
| |
| └── Domain
| | └── Common
| | └── Entities
| | └── Enums
| | └── Exceptions
| | └── ValueObjects
| |
| └── Infrastructure
| | └── Boopstrap
| | └── EventHandler
| | └── Persistence
| |
| └── WebApi
| └── Properties
| └── Services
│ └── appsettings.Development.yml
| └── appsettings.Production.yml
│ └── appsettings.yml
│ └── Program.cs
│
├── .gitignore
├── Dockerfile
├── README.md
Mapear las variables de entorno para OpenShift¶
Esta funcionalidad se creó con el fin de ahorrarnos la tarea de tener que mapear a mano las variables de entorno cada vez que queríamos deployar una nueva aplicación en OpenShift y además reducir las posibilidades de cometer un error al mapearlas e imprimirlas en la consola. Son válidos solos los archivos de extensión ".json", ".yml" y ".yaml".
Para usar esta funcionalidad debes abrir una terminal en la ruta de la solución del proyecto al que deseas mapearle las variables de entorno, una vez ahí ejecutas el siguiente comando:
Warning
Este comando solo mapea el "appsettings.Development.yml".
platform map
Option --file¶
En caso de no estar usando el template de platform se puede usar la opción "--file" acompañado de la ruta del archivo que desea mapear, como el siguiente comando:
Tip
Con este comando no es necesario abrir la consola en la raíz de la solución, basta con solo pasarle bien la ruta del archivo.
platform map --file .\src\Api\appsettings.Development.yml
Option --save¶
Esta opción nos permite guardar las Environments mapeadas en un archivo ".yml" que se va a crear en la ruta actual de la consola una vez ejecutado el comando, y luego de crearlo abre el archivo en un Notepad:
Warning
Una vez creado el archivo, el programador debe hacerse responsable del manejo de ese archivo en el proyecto.
platform map --file .\src\Api\appsettings.yml --save
Si necesitan más info de la arquitectura puede dirigirse a clen-architecture
Platform Test¶
Herramienta de automatización para la generación y visualización de code coverage en proyectos .NET 6
Uso¶
- Abrimos una terminal.
- Nos posicionamos en nuestra carpeta root o la que posee el archivo *.sln (Solucion)
- Ejecutamos
platform test
Warning
En caso de que sea un proyecto que creado previo a la fecha 10/11/2023 debemos correr el comando de install
por unica vez.
platform test --install
Nota
Recuerda configurar tu .gitignore
con:
# coverage
*coverage.opencover.xml
*coverage.cobertura.xml
**/coveragereport/*
Limitaciones¶
- Los test deben estar en la carpeta
test
ubicada en el directorioroot
.- En caso de que no exista la carpeta
test
se recomienda crearla y mover los proyectos de testing a la misma. - En caso de no poder mover los proyectos, se recomienda cambiar el argumentos
--report
en la ejecución del comando.
- En caso de que no exista la carpeta
- Debe existir al menos un proyecto de Test
Opción --install
¶
El flag --install
realiza las siguientes acciones:
-
Instala la dependencia
coverlet.msbuild
en todos los proyectos (.csproj) cuyos nombres coincidan con el patrón[Tt]ests?
. -
Instala
ReportGenerator
, una herramienta utilizada para convertir informes de cobertura de código en formatos legibles y detallados.
Warning
Para los proyectos que no sigan esta convención de nomenclatura, es necesario realizar la instalación de manera manual, siguiendo las instrucciones de configuración manual. Una vez realizado el paso de configuración, es posible utilizar el comando de Platform-CLI para visualizar el coverage
Ejemplo
platform test --install
Opción --test
¶
El argumento --test
se utiliza para personalizar los argumentos pasados al comando dotnet test
, permitiendo modificar la configuración predeterminada utilizada por la automatización.
Ejemplo:
platform test --test "--collect \"Code Coverage\""
Para obtener una lista completa de los argumentos disponibles en dotnet test
, consulte la documentación oficial: dotnet test.
Opción --report
¶
El argumento --report
se usa para configurar los argumentos que se pasarán al comando reportgenerator
, ofreciendo la flexibilidad de ajustar las opciones predeterminadas de la automatización.
Ejemplo:
platform test --report "-reports:cobertura.xml -targetdir:coveragereport"
Para más detalles sobre los argumentos que acepta reportgenerator
, visite la siguiente página: reportgenerator.