mocha.opts en desuso, ¿cómo migrar a package.json?

8

Estoy trabajando en un proyecto masivo y desde la semana pasada actualicé mocha, ahora recibimos una advertencia:

DeprecationWarning: la configuración a través de mocha.opts está DEPRECADA y se eliminará de una versión futura de Mocha. Utilice archivos RC o package.json en su lugar.

Quiero migrar las opciones a package.json pero no hay una buena guía de migración. Todas las publicaciones en GitHub con preguntas similares se responden "ver los documentos". Pero los documentos no muestran cómo transferir una opción de mocha.opts a package.json, no hay información sobre cómo debería formatearse. Lo único que puedo encontrar es que la propiedad "spec" es el patrón para que se ejecuten los archivos. Nada más me parece implícito.

Nuestro archivo mocha.opts:

--reporter dot
--require test/mocha.main
--recursive src/**/*.test.js
--grep @slow --invert

Mi intento que no funciona :

  "mocha": {
    "reporter": "dot",
    "require": "test/mocha.main",
    "spec": "src/**/*.test.js",
    "grep": "@slow --invert"
  },

Explique cómo debo formatear este bloque de configuración para lograr el comportamiento samme como cuando uso las opciones de los mocha.opts anteriores

Rasmus Puls
fuente
hola, ¿alguna vez encontraste la solución u obtuviste alguna tracción?
Fernando B
1
No, sigo esperando pacientemente. Frecuentemente reviso esta publicación y miro los documentos de mocha para ver si hay actualizaciones. Le prometo que escribiré una respuesta detallada aquí tan pronto como sepa cómo migrar con éxito;)
Rasmus Puls

Respuestas:

3

Consulte este enlace para ver el nuevo formato del archivo de opciones para mocha:

https://github.com/mochajs/mocha/blob/master/example/config/.mocharc.yml

Básicamente necesita un .mocharc.yml, o .mocharc.json, (hay un par de formatos más) para establecer las configuraciones de mocha. Vine a este POST esperando encontrar una respuesta también. ¡Espero que esto te ayude!

omenocal
fuente
Gracias por publicar esto. Pero después de crear un .mocharc.json donde estaba mi mocha.opts, puedo confirmar que se está aplicando cero de esas opciones.
Rasmus Puls
0

Parece que mocha no verificará la configuración de package.json de forma predeterminada, por lo que debe pasar --package package.json.

ingrese la descripción de la imagen aquí

Mateo
fuente
Ajá, interesante. Así que pensé que mi configuración en package.json se estaba aplicando a medida que se probaban los archivos que coinciden con el patrón "spec": "src / ** / *. Test.js". Pero acabo de eliminar toda la configuración, y resultó que están probados por la configuración predeterminada de mocha ...
Rasmus Puls
0

    /* This example illustrates how to configure mocha globally
    *1. add the 'mocharch.json' to link mocha to the 'package.json'   like so:
    */

    {
        "package": "./package.json"
    }

    /* 2. in the 'package.json' add: */
    "mocha": {
        "recursive": "true"
    }

Dmity Bryuhanov
fuente
Gracias por tu respuesta. Pero estoy viendo efecto cero absoluto. Ahora he agregado .mocharch.json y mocharch.json (sin punto). ambos apuntando a package.json como en su ejemplo. En mi package.json cuando cambio "spec" para que no coincida con ninguno de mis archivos, todas las pruebas aún se ejecutan, lo que indica que estas opciones no se están aplicando. Lo que veo es el comportamiento predeterminado de mocha.
Rasmus Puls