节点调试,让 `${file}` 动态化?

Node debugging, make `${file}` dynamic?

使用正确的调试配置文件,我可以通过 Mocha 使 VSCode 运行 成为当前关注的文件。但是,令我感到沮丧的是,如果我正在处理实际代码而不是规范文件,然后我按 F5,它会尝试 运行 通过 Mocha 将实际代码作为规范文件。

所以,我的问题是;给定这样的文件结构:

Folder
    File.js
    File.spec.js

还有这样的调试配置 (.vscode/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": [
        {
            "type": "node",
            "request": "launch",
            "name": "Unit Tests: Current File",
            "program": "${workspaceRoot}/node_modules/.bin/_mocha",
            "cwd": "${workspaceRoot}",
            "args": [
                "-u", "tdd",
                "--timeout=999999",
                "--colors",
                "--opts", "${workspaceRoot}/mocha.opts",
                "${file}"  // I want to make this dynamic
            ],
        }
    ]
}

是否有可能 VSCode 调试规范文件是否选择了规范文件 (File.spec.js) 或其主题 (File.js)?

您可以通过编写一个仅定义一个命令的简单扩展来引入新的动态变量,例如一个 smartFile 命令。 然后您可以在启动配置中将该命令称为 ${command:smartFile}.

为了执行命令,您可以使用 VS Code 扩展中可用的所有内容 API。所以你不仅可以根据你的文件夹结构计算出一个路径,你甚至可以弹出UI。例如。您可以使用 QuickPick 从所有测试列表中 select 一个测试用例。