Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>Miranda Test GeneratorNew to Visual Studio Code? Get it now.
Miranda Test Generator

Miranda Test Generator

vclerc-dev

| (0) | Free
Generates test cases from Miranda function signatures
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Miranda Test Generator README 🧪

Extensión para Visual Studio Code que analiza archivos Miranda (.mira) y genera automáticamente casos de prueba a partir de las firmas de funciones.


Instalación desde el Marketplace

Buscá "Miranda Test Generator" en el Marketplace de VS Code o instalá directamente desde:

🔗 Miranda Test Generator — Visual Studio Marketplace


¿Qué problema resuelve?

En el desarrollo de software, el testing es una práctica fundamental para garantizar la calidad del código. Sin embargo, escribir casos de prueba manualmente es tedioso y propenso a olvidar casos borde importantes.

Miranda Test Generator automatiza este proceso: lee las firmas de tipo de las funciones Miranda e infiere automáticamente qué valores son relevantes para testear, separando los casos típicos de los casos borde.


Aspectos de Ingeniería de Software

El plugin aborda los siguientes conceptos:

  • Testing automatizado: generación de casos de prueba sin intervención manual
  • TDD (Test-Driven Development): facilita escribir tests desde el inicio del desarrollo
  • Análisis estático: el plugin parsea el código fuente sin ejecutarlo
  • Calidad de software: promueve buenas prácticas de verificación desde el editor

Funcionalidades

1. Análisis de firmas

El plugin lee la firma de tipo de cada función en el archivo Miranda:

factorial :: num -> num

E infiere el tipo de cada parámetro para generar inputs relevantes.

2. Generación de casos de prueba por tipo

Tipo Miranda Casos generados
num 0, 1, -1, 5, 100, -100
bool True, False
char 'a', 'z', ' ', '0'
string / [char] "hello", "", "a", "test string"
[num] (listas) [], [1], [1,2,3], [1..5]
float 0.0, 1.5, -1.5, 3.14

Para funciones con múltiples parámetros, genera el producto cartesiano de todas las combinaciones.

3. Separación de casos típicos y borde

Los casos se clasifican automáticamente:

  • Casos típicos: valores normales de uso (1, 5, "hello", [1,2,3])
  • Casos borde: valores límite o problemáticos (0, -1, "", [], -100)

4. Archivo de tests generado

Los tests se escriben en un archivo nombre_tests.mira en la misma carpeta que el archivo original, con comentarios explicativos.

5. Integración con VS Code

  • Comando Miranda: Generate Tests disponible en el Command Palette (⌘+Shift+P)
  • Opción "Miranda: Generate Tests" en el menú contextual al hacer clic derecho sobre un archivo .mira
  • Notificación con opción de abrir el archivo generado directamente

Instalación y uso en desarrollo

Requisitos previos

  • Visual Studio Code v1.100.0 o superior
  • Node.js v18 o superior
  • npm

Pasos

1. Clonar el repositorio

git clone https://github.com/IngSoft-IOS-2026-1/miranda-test-generator
cd miranda-test-generator

2. Instalar dependencias

npm install

3. Compilar

npm run compile

4. Ejecutar en modo desarrollo

Abrí la carpeta del proyecto en VS Code y ejecutá:

code --extensionDevelopmentPath=$(pwd)

O desde VS Code: Run → Start Debugging (F5)


Cómo usar

Opción A — Command Palette

  1. Abrí un archivo .mira en VS Code
  2. Presioná ⌘+Shift+P
  3. Escribí Miranda: Generate Tests
  4. Presioná Enter

Opción B — Menú contextual

  1. En el explorador de archivos, hacé clic derecho sobre un archivo .mira
  2. Seleccioná "Miranda: Generate Tests"

En ambos casos, el plugin genera un archivo nombre_tests.mira en la misma carpeta y te ofrece abrirlo directamente.


Ejemplo de uso

Archivo de entrada: funciones.mira

factorial :: num -> num
factorial 0 = 1
factorial n = n * factorial (n-1)

esPar :: num -> bool
esPar n = n mod 2 = 0

concatenar :: [char] -> [char] -> [char]
concatenar xs ys = xs ++ ys

Archivo generado: funciones_tests.mira

|| ============================================
|| Tests generados para: funciones.mira
|| Generado por Miranda Test Generator
|| ============================================

|| --- factorial :: num -> num ---

|| Casos típicos
|| Test: factorial 1
factorial 1

|| Test: factorial 5
factorial 5

|| Test: factorial 100
factorial 100

|| Casos borde
|| Test: factorial 0
factorial 0

|| Test: factorial -1
factorial -1

|| Test: factorial -100
factorial -100

|| --- esPar :: num -> bool ---

|| Casos típicos
|| Test: esPar 1
esPar 1

|| Test: esPar 5
esPar 5

|| Casos borde
|| Test: esPar 0
esPar 0

|| Test: esPar -1
esPar -1

|| --- concatenar :: [char] -> [char] -> [char] ---

|| Casos típicos
|| Test: concatenar "hello" "hello"
concatenar "hello" "hello"

|| Test: concatenar "hello" "a"
concatenar "hello" "a"

|| Casos borde
|| Test: concatenar "" ""
concatenar "" ""

|| Test: concatenar "hello" ""
concatenar "hello" ""

Estructura del proyecto

miranda-test-generator/
├── src/
│   ├── extension.ts     # Punto de entrada, registro de comandos
│   ├── parser.ts        # Parsea firmas de funciones Miranda
│   ├── generator.ts     # Genera casos de prueba por tipo
│   └── fileWriter.ts    # Escribe el archivo .mira de tests
├── .vscode/
│   ├── launch.json      # Configuración de debugging
│   └── tasks.json       # Tareas de compilación
├── package.json         # Manifiesto de la extensión
└── tsconfig.json        # Configuración TypeScript

Tecnologías utilizadas

  • TypeScript — lenguaje principal de la extensión
  • VS Code Extension API — integración con el editor
  • esbuild — bundler para compilación
  • Node.js — entorno de ejecución

Violeta Clerc - 233379

Desarrollado como trabajo práctico para la materia Ingeniería de Software Colaborativa en Proyectos de Código Abierto — ORT Uruguay.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft