在 vscode 测试运行器脚本 (index.ts) 中传递命令行参数

pass command line argument in vscode test runner script (index.ts)

场景:

package.json 文件中的脚本如下所示:

"test": "node ./out/test/runTest.js"

runTest.js 然后调用测试 运行ner 脚本 src/test/suite/index.ts 。此文件的来源是:https://code.visualstudio.com/api/working-with-extensions/testing-extension

在 index.ts 中,它使用如下来源:

    return new Promise((c, e) => {
    glob('**/**.test.js', { cwd: testsRoot }, (err, files) => {

此处,glob 指向要考虑进行测试的 src 文件 运行。

问题:

出于特定原因,我不想使用正则表达式测试所有文件,例如:glob('**/**.test.js'

我想测试 特定的 文件,我想通过 package.json 文件中的测试脚本传递它。

例如:我想要

"test": "node ./out/test/runTest.js Filename"

index.ts 文件中的 glob() 将只考虑执行此 Filename

在这方面我需要一些帮助。

再次感谢

src/test/suite/index.ts 中打开您的 package.json 文件并搜索 "test" 脚本行并解析它的参数。

编辑

我需要类似的东西并添加了一个文件:test-arguments.txtindex.js 旁边,或者如果你使用 typescript,可能在 .vscode 文件夹中。

index.js 中,我打开文件并解析参数。我允许用 #.

注释行

通过将此 test-arguments.txt 文件添加到 .gitignore,我不必修改 package.json,我的团队成员可以有不同的论据。

在 package.json 中从 npm 脚本传递参数的方法是通过环境变量。语法因平台而略有不同。以下示例适用于 Windows.

"test": "set FileName=foo.js&node ./out/test/runTest.js"

参数和值现在可以在 runTest.js in process.env

中使用
console.log(process.env.FileName);   //foo.js