Saltar al contenido

¿Cómo ejecutar pruebas de Mocha escritas en TypeScript?

Hola, descubrimos la respuesta a lo que buscabas, desplázate y la obtendrás a continuación.

Solución:

Para cualquiera que haya probado y tenido problemas con mecanografiado-requerir es posible que desee probar ts-node.

$ npm install -g ts-node
$ mocha test.ts --require ts-node/register src/**/*.spec.ts

También parece que ha habido una discusión en curso sobre la desaprobación de typescript-require a favor de ts-node.

No uses esta respuesta. typescript-require no se mantiene y ts-node es su reemplazo. Dejando esta respuesta aquí para la posteridad.

Lo encontré. los typescript módulo es en realidad como una función "principal"; ejecuta el compilador tan pronto como se carga el módulo. Diseño no muy agradable.

Examiné las pruebas de aceptación de Mocha, que muestran cómo usar un compilador personalizado para foo archivos Lo conectan a través del require.extensions mecanismo. Estaba a la mitad de escribir un módulo que solo llama tsc en la línea de comandos cuando me di cuenta de que alguien debe haber hecho esto antes. Así que es muy simple:

$ npm install typescript-require --save-dev
$ mocha --compilers ts:typescript-require

Usando la última versión de Moca y ts-nodo estaba recibiendo un Símbolo inesperado problema de importación. Usar la configuración a continuación con ts-mocha funcionó para mí:

tsconfig.json


    "files": [
        "src/main.ts"
    ],
    "compilerOptions": 
        "noImplicitAny": true,
        "target": "es2015",
        "types": ["mocha"],
        "module": "commonjs"
    

paquete.json

"scripts": 
    "mocha": "ts-mocha -p library/tsconfig.json library/test/**/*.ts"
  ,

lanzamiento.json


    "type": "node",
    "request": "launch",
    "name": "Mocha Tests",
    "runtimeArgs": [
        "$workspaceFolder/node_modules/ts-mocha/bin/ts-mocha",
        "--timeout", "999999",
        "-p",
        "$workspaceFolder/library/tsconfig.json",
        "$workspaceFolder/library/test/**/*.ts"
    ],
    "internalConsoleOptions": "openOnSessionStart"

y gulp.js en caso de que quieras usar gulp también

const gulp = require('gulp');
const ts = require('gulp-typescript');
const mocha = require('gulp-mocha');

const tsProject = ts.createProject('tsconfig.json');

gulp.task('build', () => tsProject.src()
  .pipe(tsProject())
  .js.pipe(gulp.dest('dist')));

gulp.task('test', () => gulp.src('test/*.spec.ts')
  .pipe(mocha(
    reporter: 'nyan',
    require: ['ts-node/register'],
  )));
/* single command to hook into VS Code */
gulp.task('default', gulp.series('build', 'test'));

Aquí tienes las comentarios y valoraciones

Nos puedes amparar nuestra función dejando un comentario o puntuándolo te lo agradecemos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada.