我在Linux中看到了一个很酷的东西,想知道它是否也可以在Windows中使用。为了在自定义环境中运行另一个程序而不修改当前的程序,在Linux中我们使用env命令,如下所示:env USERNAME="Test" PASSWORD="Test" npm run e2e:test。这里基本上它所做的是e2e测试开始运行(它可以是任何技术中的任何类型的过程,而不仅仅是节点j中的e2e测试),但是使用测试用户凭证而不是预定义的实际用户凭证。如何在Windows中实现这一点?
env
env USERNAME="Test" PASSWORD="Test" npm run e2e:test
epggiuax1#
用命令行脚本调用cmd.exe,它将在其上下文中执行。
cmd.exe
cmd.exe /c "set USERNAME=Test && set PASSWORD=Test && npm run mytest"
作为完整的e2e测试,请在控制台窗口中尝试以下操作:1.创建一个小javascript脚本来输出一个环境变量:
C:\temp> echo console.log(process.env.myvar); >test.js
1.确认未在shell中设置环境变量,并且调用脚本也找不到该变量:
C:\temp> set myvar Environment variable myvar not defined C:\temp> node test.js undefined
1.现在,运行脚本,但在子进程中设置环境变量,如上所述。注意,脚本现在看到该值。
C:\temp> cmd.exe /c "set myvar=hello && node test.js" hello
1.确认父进程仍然没有设置变量。
gmxoilav2#
我通过installing WSL和通过powershell使用它解决了这个和许多其他操作系统相关的问题。
2条答案
按热度按时间epggiuax1#
用命令行脚本调用
cmd.exe
,它将在其上下文中执行。作为完整的e2e测试,请在控制台窗口中尝试以下操作:
1.创建一个小javascript脚本来输出一个环境变量:
1.确认未在shell中设置环境变量,并且调用脚本也找不到该变量:
1.现在,运行脚本,但在子进程中设置环境变量,如上所述。注意,脚本现在看到该值。
1.确认父进程仍然没有设置变量。
gmxoilav2#
我通过installing WSL和通过powershell使用它解决了这个和许多其他操作系统相关的问题。