Saltar a contenido

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

  1. Instalar Net 8
  2. Instalar Visual Studio 2022 (v17.8) o superior
  3. 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

repo

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

repo

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

repo

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

repo

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

  1. Abrimos una terminal.
  2. Nos posicionamos en nuestra carpeta root o la que posee el archivo *.sln (Solucion)
  3. Ejecutamos
terminal
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.

terminal
platform test --install

Nota

Recuerda configurar tu .gitignore con:

.gitignore
# coverage
*coverage.opencover.xml
*coverage.cobertura.xml
**/coveragereport/*

Limitaciones

  1. Los test deben estar en la carpeta test ubicada en el directorio root.
    1. En caso de que no exista la carpeta test se recomienda crearla y mover los proyectos de testing a la misma.
    2. En caso de no poder mover los proyectos, se recomienda cambiar el argumentos --report en la ejecución del comando.
  2. Debe existir al menos un proyecto de Test

Opción --install

El flag --install realiza las siguientes acciones:

  1. Instala la dependencia coverlet.msbuild en todos los proyectos (.csproj) cuyos nombres coincidan con el patrón [Tt]ests?.

  2. 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

terminal
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:

terminal
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:

terminal
platform test --report "-reports:cobertura.xml -targetdir:coveragereport"

Para más detalles sobre los argumentos que acepta reportgenerator, visite la siguiente página: reportgenerator.