业力:从WSL使用Windows的Chrome

Kor*_*aan 8 google-chrome karma-runner karma-jasmine windows-subsystem-for-linux

我正在尝试使用Windows版本的Google Chrome从WSL启动业力。

在karma.conf.js中,我仅使用Chrome浏览器:

[...],
browsers: ['Chrome'],
[...]
Run Code Online (Sandbox Code Playgroud)

然后像这样导出CHROME_BIN环境变量:

export CHROME_BIN='/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe'
Run Code Online (Sandbox Code Playgroud)

业力成功找到Google Chrome,并且在业力启动时在正确的URL上打开一个新标签。但是,我收到此错误:

Google chrome can't read and write to its data directory /tmp/karma-XXXX
Run Code Online (Sandbox Code Playgroud)

我尝试以管理员身份启动chrome并将缓存文件夹更改为项目的根目录,但是它不起作用。

我认为Karma提供给Chrome的路径格式存在问题(WSL路径与Windows路径)。

因此,我创建了一个自定义的因果启动程序,并指定了chromeDataDir:

browsers: ['WindowsChrome'],
customLaunchers: {
  WindowsChrome: {
    base: 'Chrome',
    chromeDataDir: 'D:\\'
  }
}
Run Code Online (Sandbox Code Playgroud)

这样,我没有上一个错误,启动了一个新的Chrome实例,但Chrome似乎无法解析URL和业力超时。此外,在我的项目中创建了很多Chrome文件夹。

是否有人已经使用Chrome在WSL中使业力起作用,或者对正在发生的事情有任何暗示?

Ser*_*nin 10

我发现如果你在 Windows 下创建一个 C:\tmp\karma 文件夹,这个错误就会消失,Chrome 会找到并使用这个文件夹来存放临时文件。

您还可以通过设置 TEMP 环境变量来更改 Chrome 用于其数据的临时文件夹,如下所示:

export TEMP='/path/to/your/folder'
Run Code Online (Sandbox Code Playgroud)

重要的是 C:\path\to\your\folder 必须存在于 Windows 下。

  • 创建一个“C:\tmp\karma”文件夹对我来说很有效。谢谢! (5认同)
  • 对于可能关心的人,如果您的源代码位于另一个驱动器盘符上(我的源代码位于 E: 上),则应在该驱动器盘符上创建 tmp 文件夹(例如 E:\tmp) (3认同)
  • 谢谢!我也可以通过如上所述设置“CHROME_BIN”并创建目录“C:\tmp”来使其工作。有“tmp”存在就足够了。Karma 将在“tmp”中创建名为“karma-*”的目录。 (2认同)