我使用 cypress 进行测试自动化,当从 Git for Windows bash 终端运行测试规范时,我在结果输出中得到奇怪的字符:
cypress 规范在 Windows bash 的 Git 中运行 -
如果我从 Windows 命令提示符运行 cypress,输出字符是正确的:
cypress 规范在 Windows 命令提示符中运行 -
我使用的是 Windows 7、cypress 5.1.0 和 Git for Windows 2.28.0 以及 mintty 3.2.0
关于如何纠正这个问题有什么想法吗?
最佳答案
The issue is described in this GitHub issue .
问题是 Cypress 通过其 stdout
发送 UTF-8 编码的文本,该文本在被 Mintty 接收之前被 Windows 破坏(Mintty 是托管 bash
并运行的) Windows 上的 git
)。
据我了解,Mintty 尚未指示 Windows 不要破坏它处理的 stdout
- (但是 cmd.exe
确实如此,这就是它在那里工作的原因) - 但我们可以通过使用 chcp
程序(位于 C:\Windows\System32\chcp.com
,是的,这就是.com
,而不是 .exe
)。您可以将命令添加到您的 .bashrc
文件中,这样当您启动 Mintty 时它就会始终运行:
在 Windows 上打开 mintty - 这可能会启动 bash shell。
转到您的主目录(即
cd ~
)打开或创建
.bashrc
文件。将其放入文件中(根据需要更新
chp.com
程序的路径):/c/Windows/System32/chcp.com 65001
然后重新启动终端窗口,它应该可以工作。
关于cypress - 从命令行运行 cypress 时,Git for Windows bash 中出现奇怪的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63841282/