微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决在 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 举报,一经查实,本站将立刻删除。