mocha.opts descontinuado, como migrar para o package.json?

8

Estou trabalhando em um projeto enorme e, desde a semana passada, atualizei o mocha, agora estamos recebendo um aviso:

DeprecationWarning: A configuração via mocha.opts é DEPRECATED e será removida de uma versão futura do Mocha. Use arquivos RC ou package.json.

Quero migrar as opções para o package.json, mas não há um bom guia de migração. todas as postagens no GitHub com perguntas semelhantes são respondidas "consulte os documentos". Mas os documentos não mostram como transferir uma opção do mocha.opts para o package.json, não há informações sobre como ele deve ser formatado. A única coisa que posso encontrar é que a propriedade "spec" é o padrão para a execução dos arquivos. Nada mais parece implícito para mim.

Nosso arquivo mocha.opts:

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

Minha tentativa que não funciona :

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

Por favor, explique como devo formatar este bloco de configuração para obter o mesmo comportamento, como ao usar as opções do mocha.opts acima

Rasmus Puls
fonte
Olá, você já encontrou a solução ou teve alguma tração?
Fernando B
1
Não, eu ainda estou esperando pacientemente. Estou frequentemente verificando este post e olhando para os documentos do mocha para obter atualizações. Prometo que vou escrever uma resposta detalhada aqui assim que souber migrar com êxito;)
Rasmus Puls

Respostas:

3

Confira este link para ver o novo formato do arquivo de opções para o mocha:

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

Basicamente, você precisa de um .mocharc.yml ou .mocharc.json (existem mais alguns formatos) para definir as configurações do mocha. Eu vim para este POST esperando encontrar uma resposta também. Espero que isso seja útil para você!

omenocal
fonte
Obrigado por postar isso. Mas depois de criar um .mocharc.json onde estava o meu mocha.opts, posso confirmar que zero dessas opções está sendo aplicada.
Rasmus Puls
0

Parece que o mocha não verifica o pacote.json quanto à configuração por padrão, então você precisa passar --package package.json.

insira a descrição da imagem aqui

Mateus
fonte
Aha, interessante. Por isso, pensei que minha configuração no package.json estava sendo aplicada, pois os arquivos que correspondiam ao padrão "spec": "src / ** / *. Test.js" estavam sendo testados. Mas eu apenas apaguei toda a configuração e descobri que elas são testadas pelas configurações padrão do mocha ...
Rasmus Puls 07/04
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
fonte
Obrigado pelo seu agradecimento. Mas estou vendo efeito zero absoluto. Eu adicionei agora .mocharch.json e mocharch.json (sem ponto). ambos apontando para package.json como no seu exemplo. No meu package.json, quando altero "spec" para não corresponder a nenhum dos meus arquivos, todos os testes ainda são executados, indicando que essas opções não estão sendo aplicadas. O que vejo é o comportamento padrão do mocha.
Rasmus Puls