如何解决在 vscode 测试运行脚本index.ts中传递命令行参数
场景:
package.json
文件中的脚本如下所示:
"test": "node ./out/test/runTest.js"
这个 runTest.js
然后调用测试运行脚本 src/test/suite/index.ts
。此文件的来源是:this example
在 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"
而 glob()
文件中的 index.ts
将只考虑执行此 Filename
。
我需要这方面的帮助。
再次感谢
解决方法
在 src/test/suite/index.ts
中打开您的 package.json
文件并搜索 "test"
脚本行并解析它的参数。
编辑
我需要类似的东西并添加了一个文件:test-arguments.txt
旁边的 index.js
或者如果您使用打字稿,则可能在 .vscode
文件夹中。
在 index.js
中,我打开文件并解析参数。我允许用 #
注释行。
通过将此 test-arguments.txt
文件添加到 .gitignore
,我不必修改 package.json
,我的团队成员可以有不同的参数。
在 package.json 中从 npm 脚本传递参数的方法是通过环境变量。根据平台的不同,语法略有不同。以下示例适用于 Windows。
"test": "set FileName=foo.js&node ./out/test/runTest.js"
现在可以在 process.env 中的 runTest.js 中使用参数和值
console.log(process.env.FileName); //foo.js
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。