Nivel inicial8 min de lectura · Publicado el

Instalación de Jasmine Standalone (a pelo) paso a paso

Instalar Jasmine Standalone: el zip 7.0.1 trae lib, src y spec; test/index.html en el navegador da 2 specs, 0 failures, sin Node ni npm. Jasmine: tests sin Node ni npmrubentejera.com 7.0.1libsrcspectest/index.html2 specs, 0 failuresNodenpm
Jasmine Standalone no se instala: descomprimes el zip de la versión 7.0.1 (lib, src y spec), abres test/index.html en el navegador y ves el resultado, «2 specs, 0 failures». Ni Node ni npm.

Quieres escribir tus primeros tests de JavaScript, pero no quieres instalar Node, npm ni configurar nada. Para eso existe Jasmine Standalone: una versión de Jasmine que funciona solo con un navegador.

Viene lista para usar: la descomprimes y ya puedes trabajar. No hay que instalar nada ni leer un manual de instalación. Por eso lo de «a pelo»: sin herramientas por medio, tú, unos ficheros y el navegador.

Jasmine es un framework de testing para JavaScript: te da las funciones describe, it y expect para escribir tests y un informe que dice cuáles pasan y cuáles fallan.

Instalar Jasmine Standalone en cuatro pasos

  1. Descarga el zip de la última versión.
  2. Descomprímelo en una carpeta jasmine de tu proyecto.
  3. Crea el HTML que ejecuta los tests.
  4. Escribe un test y abre el HTML en el navegador.

1. Descarga la distribución

Entra en la página de versiones de Jasmine en GitHub y descarga el fichero jasmine-standalone-X.Y.Z.zip de la última versión. En noviembre de 2026 es la 7.0.1.

Si prefieres la terminal:

curl -LO https://github.com/jasmine/jasmine/releases/download/v7.0.1/jasmine-standalone-7.0.1.zip

-L sigue la redirección de GitHub hasta el fichero y -O lo guarda con su nombre original.

2. Descomprímelo en tu proyecto

mkdir -p mi-proyecto/jasmine
unzip jasmine-standalone-7.0.1.zip -d mi-proyecto/jasmine

La opción -d indica en qué carpeta descomprimir. Así no tienes que mover nada después. Dentro tendrás esto:

jasmine/
├── lib/jasmine-7.0.1/      ← el framework (no lo toques)
│   ├── jasmine.js
│   ├── jasmine-html.js
│   ├── boot.js
│   ├── jasmine.css
│   └── jasmine_favicon.png
├── src/                    ← código de ejemplo (Player.js, Song.js)
├── spec/                   ← tests de ejemplo
└── SpecRunner.html         ← la página que ejecuta los tests

Abre SpecRunner.html en el navegador (doble clic basta) y verás los tests de ejemplo en verde. Es la forma más rápida de comprobar que todo funciona.

3. Crea el HTML que ejecuta tus tests

Puedes editar SpecRunner.html o crear tu propia página. En el proyecto del artículo original se separaba el HTML de la aplicación del HTML de los tests: quedaban dos index.html, uno para la aplicación y otro, dentro de la carpeta test, para los tests. Esta era su estructura:

pruebas/
├── .idea/
├── css/
├── img/
├── jasmine/
├── js/
│   └── index.js
├── test/
│   ├── spec.support/
│   │   └── jasmine.json
│   ├── index.html
│   ├── index.spec.js
│   └── npm-debug.log
├── app.js
├── index.html
└── pruebas.iml

Y este era su test/index.html (las primeras 29 líneas):

<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8">
  <title>Jasmine Spec Runner v3.1.0</title>

  <link rel="shortcut icon" type="image/png" href="../jasmine/lib/jasmine-3.1.0/jasmine_favicon.png">
  <link rel="stylesheet" href="../jasmine/lib/jasmine-3.1.0/jasmine.css">

  <script src="../jasmine/lib/jasmine-3.1.0/jasmine.js"></script>
  <script src="../jasmine/lib/jasmine-3.1.0/jasmine-html.js"></script>
  <script src="../jasmine/lib/jasmine-3.1.0/boot.js"></script>
  <link rel="stylesheet" href="../css/styles.css">

</head>
<body>
  <div id="container">
    <header>
      <h1>Play With Numbers</h1>
    </header>
    <div id="randNumber">
      <h3>Enter a number: </h3>
      <textarea id="randNumberInput"></textarea>
      <div class="button">Hit me</div>
    </div>
  </div>
  <script src="../js/index.js"></script>
  <script src="index.spec.js"></script>

Aquel HTML es de la versión 3.1.0, pero la idea es la misma. Para la 7.0.1, el test/index.html queda así:

<!DOCTYPE html>
<html lang="es">
<head>
  <meta charset="utf-8">
  <title>Tests de mi proyecto</title>

  <link rel="shortcut icon" type="image/png" href="../jasmine/lib/jasmine-7.0.1/jasmine_favicon.png">
  <link rel="stylesheet" href="../jasmine/lib/jasmine-7.0.1/jasmine.css">

  <script src="../jasmine/lib/jasmine-7.0.1/jasmine.js"></script>
  <script src="../jasmine/lib/jasmine-7.0.1/jasmine-html.js"></script>
  <script src="../jasmine/lib/jasmine-7.0.1/boot.js"></script>

  <!-- El código que quieres probar -->
  <script src="../js/index.js"></script>

  <!-- Tus tests -->
  <script src="index.spec.js"></script>
</head>
<body>
</body>
</html>

Tres cosas importan:

  • La versión de las rutas. Si descargas otra versión, cambia 7.0.1 por la tuya en todas las líneas.
  • El orden. Primero Jasmine (jasmine.js, jasmine-html.js, boot.js), después tu código y al final tus tests. Un test no puede usar una función que todavía no se ha cargado.
  • Las rutas relativas. Como este HTML está en test/, se sube un nivel con ../ para llegar a jasmine/ y a js/.

No hace falta type="text/javascript" en los <script>: es el valor por defecto en HTML.

Si tu código necesita elementos de la página (un botón, un campo de texto), puedes cargar tu código y tus tests al final del <body>, como en el HTML original. boot.js espera a que la página termine de cargar para lanzar los tests, así que funcionan en los dos sitios.

4. Escribe tu primer test

En js/index.js, el código que quieres probar:

function esPar(numero) {
  return numero % 2 === 0;
}

En test/index.spec.js, los tests:

describe('esPar', function() {
  it('devuelve true con un número par', function() {
    expect(esPar(4)).toBe(true);
  });

  it('devuelve false con un número impar', function() {
    expect(esPar(7)).toBe(false);
  });
});
  • describe agrupa los tests de una misma cosa.
  • it es cada test: una frase que dice qué se espera.
  • expect(...).toBe(...) compara el resultado con el valor esperado.

Abre test/index.html en el navegador: verás «2 specs, 0 failures». Cambia esPar para que devuelva siempre true y recarga: el segundo test saldrá en rojo con el motivo del fallo.

Así empezaba el primer fichero de tests del proyecto original, con un beforeEach que prepara la aplicación antes de cada test. Es un fragmento: el resto de tests iba dentro del mismo describe exterior:

describe('application', function() {
  beforeEach(function() {
    start();
  });

  describe('True is true', function(){//describe describe el caso de uso
    it('should be true', function() {//it son las comprobaciones
      expect(true).toEqual(true);
    });
  });

  // …
});

Si quieres saber qué hace cada pieza (describe, it, beforeEach, afterEach…), se explica en Composición de un test en TDD y sus métodos.

Primero Jasmine, luego tu código, al final tus tests.

¿Hace falta un servidor web?

No. Abrir el HTML con doble clic funciona. La documentación de Jasmine recomienda, aun así, servirlo con un servidor web sencillo (cita como ejemplo el paquete serve), porque algunos navegadores dan menos información de los errores cuando la página se abre desde file://. Si un test falla sin un mensaje claro, prueba así.

¿Standalone, npm o Jest?

El standalone es perfecto para aprender, para una kata o para un proyecto pequeño sin herramientas. Cuando el proyecto crece, conviene pasar a una de estas opciones:

Opción Cuándo usarla Cómo empezar
Jasmine Standalone Aprender o probar código de navegador sin instalar nada Descargar el zip
jasmine (npm) Ejecutar los tests en Node desde la terminal o en integración continua npm install --save-dev jasmine y npx jasmine init
jasmine-browser-runner (npm) Ejecutar los tests en un navegador de forma automática npm install --save-dev jasmine-browser-runner jasmine-core y npx jasmine-browser-runner init

Con el paquete de npm, el mismo test se ejecuta en la terminal con npx jasmine; solo hay que exportar la función con module.exports e importarla en el test con require.

Si prefieres Jest, tienes la guía en Instalar Jest en un proyecto de JavaScript.

Si programas con IA

Un asistente de IA puede generarte la función y también los tests. Pero si no los ejecutas, no sabes si algo funciona. Tener los tests a un clic, aunque sea en un HTML, es la red de seguridad mínima para revisar lo que propone la IA antes de aceptarlo. Es una de las ideas del enfoque IA Limpia.

Fuentes

Comprobado en noviembre de 2026:

Qué se ha ejecutado: se descargaron y descomprimieron los zips de las versiones 7.0.1 y 6.3.0 para comprobar sus ficheros (la 6.3.0 usa boot0.js y boot1.js; la 7.0.1 solo boot.js, aunque su SpecRunner.html sigue pidiendo boot0.js). Los tests de esPar y los de ejemplo del zip se ejecutaron con jasmine 7.0.0 y jasmine-core 7.0.2 en Node 24.21, cargando los ficheros como scripts clásicos, igual que hace el navegador. La página HTML del artículo no se ha abierto en un navegador en esta revisión.