Запуск теста npm в отладочном терминале в VSCode

0

Вопрос

Я пытаюсь создать конфигурацию в файле launch.json, которая будет работать npm test в папке, в которой .js файл находится. Выполняется npm test вручную в терминале работает нормально, принимая соответствующую команду от scripts часть моей package.json:

"scripts": {
    "start": "node --experimental-json-modules nodeserver.js",
    "test": "export MY_VAR=abc && node --experimental-json-modules nodeserver.js"
},

В частности, при запуске npm test непосредственно в терминале, env var, указанный в test строка сценария вступает в силу, и --experimental-json-modules флаг передается node.

Это мой запуск.json:

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "command": "npm test",
            "name": "Run npm test",
            "request": "launch",
            "type": "node-terminal"
        }
    ]
}

Это в значительной степени соответствует одному из предопределенных вариантов, предложенных в редакторе, и очень похоже на это.

Но когда я запускаю эту конфигурацию на nodeserver.js файл, я получаю:

enter image description here

Кажется, он работает node без флага, который я указал в конфигурации? Что я неправильно понимаю в том, как это launch.json схема работает?

РЕДАКТИРОВАТЬ чем больше я играл, тем больше мне кажется, что конфигурация просто полностью игнорируется, так что она использует настройки по умолчанию node.js конфигурация... Я выбираю конфигурацию из выпадающего списка и нажимаю значок воспроизведения:

enter image description here

Должно ли это сработать?

Помимо бега npm start в терминале единственный "автоматический" способ заставить это работать-открыть package.json и нажав на маленькую кнопку отладки, которая появляется рядом с scripts метка:

enter image description here

Но я хотел бы выяснить, как использовать launch.json правильно, чтобы я мог передавать переменные среды и т. Д. Через Это вместо этого.

debugging node.js npm visual-studio-code
2021-11-23 19:08:15
2
0

Вы можете попробовать создать тестовый сценарий npm непосредственно в файле launch.json, как указано выше:

{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
    {
        "name": "Run npm test",
        "request": "launch",
        "type": "node",
        "args": ["--experimental-json-modules", "${workspaceFolder}/nodeserver"],
        "env": {
           "MY_VAR": "abc"
        }

    }
]
}
2021-11-29 11:39:31

Точно то же самое происходит и с этим launch.json тоже... похоже, что конфигурация просто полностью игнорируется, так что она использует настройки по умолчанию node.js конфигурация запуска.
drmrbrewer
0

запуск.json

{
    "version": "0.2.0",
    "configurations": [
        {
            "type": "pwa-node",
            "request": "launch",
            "name": "Launch Program",
            "skipFiles": [
                "<node_internals>/**"
            ],
            "program": "${workspaceFolder}\\index.js"
        },
        {
            "type": "pwa-node",
            "request": "launch",
            "name": "Run Test",
            "skipFiles": 
            [
                "<node_internals>/**"
            ],

            // You can specify enviorment variables per config here
            // using key value pairs
            "env": 
            {
                "test_variable": "test value"
            },

            // You can also specify a .env file that contains them
            "envFile": "${workspaceFolder}/.env",

            // Here you specify the file you want launched
            "program": "${workspaceFolder}\\test.js",

            // add args to nodejs here
            "runtimeArgs": 
            [
                "--experimental-json-modules"
            ],
        }
    ]
}

Для справки: https://code.visualstudio.com/docs/nodejs/nodejs-debugging

2021-12-02 10:34:50

Точно то же самое происходит и с этим launch.json тоже... кажется, что конфигурация (включая --experimental-json-modules arg) просто полностью игнорируется, так что он использует значение по умолчанию node.js конфигурация запуска, без каких-либо аргументов. Может быть, я просто неправильно запускаю это... как ты это делаешь? То, как я это делаю, описано в оригинальном посте.
drmrbrewer

@drmrbrewer Я выбираю профиль, а затем нажимаю F5. Я просто проверил этот переключатель, и он сработал. i.imgur.com/CiRXX6X.png
John

Да. F5-это эквивалент того, что я делал... нажатие кнопки "воспроизвести" рядом с именем профиля... все равно я получаю ту же ошибку, и указанные аргументы времени выполнения просто полностью игнорируются... понятия не имею, что происходит.
drmrbrewer

На других языках

Эта страница на других языках

Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................