在 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.txt
在 index.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
场景:
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.txt
在 index.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