Você sabia que basta entrar na configuração de inicialização, colocar o cursor após ou entre as outras configurações e pressionar ctrl- spacepara obter uma configuração de mocha válida e atual gerada automaticamente?
O que funciona perfeitamente bem para mim. Incluindo parar em pontos de interrupção. (Eu também tinha um anterior, agora desatualizado, que não existia mais por vários motivos relacionados ao ambiente.)
A partir do VSCode 1.21.1 (março de 2018), isso resulta em:
{
"version": "0.2.0",
"configurations": [
{
"name": "Mocha (Test single file)",
"type": "node",
"request": "launch",
"runtimeArgs": [
"${workspaceRoot}/node_modules/.bin/mocha",
"--inspect-brk",
"${relativeFile}",
],
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen",
"port": 9229
}
}
Em uma observação lateral: debug-brk
está obsoleto (para qualquer um com Nó> = Versão 8 pelo menos).
"args"
bloco:"--require", "${workspaceFolder}/tools/testSetup.js",
Ctrl+Space
configuração dos testes Mocha gerados automaticamente não tinhadebug-brk
. Apesar disso, a depuração com pontos de interrupção funcionou muito bem.debug-brk
não é mais necessário usado, suportado ou inserido automaticamente. Minha nota lateral apenas esclareceu isso, já que várias outras respostas mencionam isso.ctrl + space
funcionar.Se você não quiser usar
--debug-brk
+ Attach ou indicar um caminho absoluto para a instalação global do mocha (que será interrompida se você mantiver o launch.json sob controle de versão e tiver vários desenvolvedores em máquinas diferentes), instale o mocha como uma dependência de desenvolvimento e adicione isso ao seu launch.json:Suporte total à depuração em seus testes pressionando apenas F5.
--no-timeouts
garante que seus testes não expirem porque você parou em um ponto de interrupção e--colors
garante que o Mocha produza cores, embora não detecte que o VS Code suporta cores.fonte
sourceMaps: true
. Obrigado um bilhão!npm_config_myparam
o bloco env. Onde na CLI, pode parecernpm --myparam=myvalue test
.Outra maneira é usar a
--debug-brk
opção de linha de comando do mocha e aAttach
configuração de inicialização padrão do depurador de código do Visual Studio.Explicação mais aprofundada sugerida (de André)
Para fazer isso:
Execute o mocha a partir da linha de comando usando este comando:
Agora, no VS Code, clique no ícone Debug e selecione
Attach
a opção ao lado do botão Iniciar. Adicione pontos de interrupção no VS Code e clique em iniciar.fonte
"request": "attach"
ao launch.json se ele não existir - caso contrário, reclamará que você deve especificar um programa ou algum outro erro.VS Code
específico. Não funciona no VS 2015 normal--debug-brk
está obsoleto , é por isso que sugiro criar automaticamente uma nova configuração de depuração em vscode , sim, também especificamente para mocha.Fiz este trabalho no VSCode no OS X 10.10. Basta substituir seu
./settings/launch.json
arquivo por este.Ele também está disponível como uma essência aqui .
Os valores-chave que você precisa alterar são
program
, que deve ser definido como_mocha
executável eargs
, que deve ser uma matriz de seus arquivos de teste.fonte
OpenDebug process has terminated unexpectedly
"runtimeExecutable"
para"C:/Program Files/nodejs/node.exe"
ou onde o Node está instalado?A forma como o fiz funcionar no VS Code (1.8.2) no Mac OS X é:
O Mocha precisa ser instalado no diretório de módulos npm.
fonte
Debug > Add Configuration...
menuNode.js
ambienteMocha Tests
opção na lista suspensa exibidaargs
propriedadebreakpoint
Debug
íconeMocha Tests
como configuraçãoStart debugging
botãofonte
Eu descobri uma maneira de fazer isso que classifico como uma solução alternativa . Espero que a equipe do Visual Studio Code forneça uma solução mais definitiva para isso, mas, enquanto isso, fiz o seguinte:
./settings/mocha.js
arquivo que executa o mocha, transmitindo argumentos de forma programática como uma lista de arquivos a serem executados. Você pode ver o arquivo completo aqui ;Eu criei uma configuração de inicialização que executará o
./settings/mocha.js
comoprogram
e transmite os arquivos / padrões de arquivo que precisamos testar como argumentos:Exemplo completo de launch.json
Portanto, isso é o equivalente a fazer
mocha test/unit/*.js test/unit/**/*.js
e agora podemos usar pontos de interrupção em nossos testes de mocha.fonte
'sourceMaps': true, 'outDir': './build'
à minha configuração de inicialização.Se você adicionar a variável $ {file} no final da lista de args, poderá começar a depurar diretamente do arquivo que abriu:
fonte
Desculpe por adicionar outra resposta, mas nenhuma das anteriores funcionou muito bem para mim no VS Code 1.8.1 e no depurador Node padrão incluído nele. Aqui está a maneira como eu resolvi isso (com orientação das respostas anteriores aqui e dos documentos oficiais de depuração do VS Code Node.js ) para que haja depuração com um clique / pressionamento de tecla:
devDependency
empackages.json
:"devDependencies": { "mocha": "^3.2", ... }
npm install
no diretório do seupackage.json
para certificar-se de que o mocha agora está instalado emnode_modules/
.vscode/launch.json
(ou em VS Code, pressione F1, comece a digitar "launch" e selecione "Debug: Open launch.json")launch.json
, em seguida, escolha o novo nome de configuração na janela de depuração no VS Code e clique na seta verde para começar a depurar seus testes node + mocha!Na nova configuração em
launch.json:
Isso pressupõe que o padrão
test/**/*.js
funcionará para onde você colocar seus testes. Altere conforme apropriado.Sinta-se à vontade para alterar a porta, contanto que altere-a nas propriedades
args
eport
para que correspondam.A principal diferença para mim era garantir que o mocha estava dentro
node_modules
, usandoprogram
para apontar para o executável eargs
precisandodebug-brk=x
apontar para a porta especificada emport
. O resto do acima apenas torna as coisas mais bonitas e fáceis.Cabe a você e sua equipe se você colocar
.vscode/launch.json
no repositório ou não. É um arquivo somente IDE, mas toda a sua equipe poderia usá-lo assim, sem problemas, já que todos os caminhos e instalações são relativos e explícitos.Dica: O
package.json
pode incluir umascripts
tag que também inicia o mocha com algo semelhante"test": "./node_modules/.bin/mocha"
, mas não é usada pelo VS Code - em vez disso, é usada quandonpm test
é executada na linha de comando. Este me confundiu um pouco. Anotando aqui, caso outros também se confundam.EDIT: VS Code 1.9.0 adicionou uma opção "Adicionar configuração" na lista suspensa de configuração de depuração, e você pode escolher "Testes Mocha Node.js" que ajudam a simplificar a maioria dos itens acima. Você ainda precisa se certificar de que o mocha está em seu
node_modules
e pode ter que atualizar ocwd
e lastruntimeArgs
(que é o padrão para encontrar seus testes) para apontar para os caminhos apropriados. Mas depois de definir essas duas propriedades, deve funcionar praticamente a partir daí.fonte
no launch.json, adicione mais 1 configuração abaixo
se você precisar configurar a versão do nó, basta adicionar um
runtimeExecutable
campo como estefonte
Para qualquer pessoa que use o Windows. Se você instalou o mocha globalmente, configurar o programa para o seguinte caminho funcionou para mim (troque seu nome de usuário).
fonte
Isso está funcionando para mim em uma máquina com Windows 7. Eu tenho o mocha instalado globalmente, mas esta configuração está apontando para a instalação do projeto para evitar a necessidade de um caminho de perfil de usuário (que btw, eu tentei usar a variável% USERPROFILE% sem sucesso). Sou capaz de definir pontos de interrupção em meus testes de mocha agora. Yay!
fonte
Para aqueles que usam grunt ou gulp, a configuração é bem simples.
Launch.json
Gruntfile.js
fonte
No VSCode versão 1.13.0 (macOS), eles o possuem integrado em configurações ->
Mocha Tests
.fonte
Ao usar o Babel, ou gerar arquivos javascript ainda colocando pontos de interrupção na fonte - você deve certificar-se de habilitar
sourceMaps
e definiroutFiles
. Aqui está um exemplo de configuração que funcionou para mim.Observação - você precisará modificar
outFiles
para incluir tudo o que deseja adicionar um ponto de interrupção. Isso pode ser mais tedioso quando em um monorepo e vários projetos dependentes.fonte
1) Vá para
então
Arquivo
2) Adicione a seguinte configuração em launch.json -
3) Defina pontos de interrupção no arquivo de teste e pressione
F5
fonte
Ao usar o TypeScript, a seguinte configuração funciona para mim no Visual Studio Code 0.8.0 (tsc 1.5.3)
tsconfig.json
O que é importante notar aqui é que os mapas de origem são gerados e que o diretório de saída para o js está definido como
build
launch.json
Observe que
sourceMaps
está definido comotrue
e queoutDir
está definido comobuild
depurar
index.ts
qualquer outro arquivo de texto digitado importadomocha --debug-brk ./build/test/appTests.js
fonte
Aqui está um exemplo de configuração de inicialização (launch.json) da Microsoft, que funciona com o Mocha e permite usar o depurador.
Além disso, há uma descrição de como usar a opção --debug-brk.
Finalmente, aqui está uma versão alternativa de como depurar código com testes Mocha usando o arquivo tasks.json do VS Code e o executor de tarefas Gulp.
fonte
Se você tiver alguma dependência no teste, também é fácil anexá-lo.
Por exemplo, estou acostumado
mongo-unit-helper
a ter testes de unidade integrados ao banco de dados.package.json
o script é:mocha --recursive --require ./test/mongo-unit-helper.js --exit"
Minha
launch.json
aparência é:A solução é colocar
--require
separadamenteargs
emlaunch.json
.fonte
Solução mais simples
Adicione o seguinte código ao launch.json dentro da pasta .vscode:
No entanto, você pode querer adicionar um argumento de tempo limite também:
fonte