21

我有一个仅命令行的 Ubuntu 11.04 (GNU/Linux 2.6.35.4-rscloud x86_64),我正在完成使用 Karma 进行测试的Angular Phonecat 教程。Karma 浏览器配置页面显示Chrome启动器“默认随 Karma 提供”。

但这对我不起作用。这是 karma.conf.js。下面是输出。

 $ ./scripts/test.sh

Starting Karma Server (http://karma-runner.github.io)
-------------------------------------------------------------------
INFO [karma]: Karma v0.10.4 server started at http://localhost:9876/
INFO [launcher]: Starting browser Chrome
ERROR [launcher]: Cannot start Chrome
        Can not find the binary google-chrome
        Please set env variable CHROME_BIN

这个答案指出我需要铬。

因此,我尝试使用“使用命令行下载 64 位版本”的指南在我的 Ubuntu 上安装 Chrome。一切都很顺利,直到sudo apt-get -f installubuntu IP 地址出现大量“获取失败”,例如 91.189.91.15 或 91.189.92。. 即使 /usr/bin/google某些东西*“找不到二进制 google-chrome”消失了,我仍然在个人测试级别得到“无法启动 Chrome”。然后在尝试修复错误时,我删除了 /usr/bin/google something

目前,我有这些 node_modules:

angular-phonecat/node_modules$ ls
karma                      karma-html2js-preprocessor  karma-requirejs
karma-chrome-launcher      karma-jasmine               karma-script-launcher
karma-coffee-preprocessor  karma-junit-reporter
karma-firefox-launcher     karma-phantomjs-launcher

Q 1:由于我的机器只有命令行访问,没有 GUI,其他 Karma 启动器 PhantomJS 是不是比 Chrome/Chromium 更好的选择?

问题 2:如果我仍然应该使用 Chrome/Chromium,我应该使用 Chrome 还是 Chromium?

问题 3:有人知道我需要什么才能让 Karma 使用 google-chrome 或 chromium 在 Angular 应用程序中工作吗?

4

4 回答 4

28

我将扩展路德维希的第三点,以供寻求答案的人以及我自己将来参考……

您需要做的第一件事是找到chromium-browser安装位置。跑:

which chromium-browser

这将返回可执行文件的路径,如下所示:

/usr/bin/chromium-browser

然后简单地设置路径:

export CHROME_BIN=/usr/bin/chromium-browser

现在,Karma 可以找到执行测试所需的浏览器(假设您决定使用图形界面)。

于 2014-02-18T15:59:40.487 回答
10
  1. 如果您只有命令行界面,PhantomJS 是您的唯一选择。
  2. 在 linux(至少 12.04 及更高版本)中,铬是替代品。但是如果你没有图形用户界面,你就无法安装它。
  3. 线索在这里:“请设置环境变量 CHROME_BIN”。Karma 尝试执行一个名为google-chrome但它不存在的文件。chrome 的可执行文件的名称因操作系统而异。因此,您需要设置一个名为 CHROME_BIN 的环境变量,它的值与您的 chrome 可执行文件的名称相同。在我的系统(Linux 桌面 13.10)上,这是chromium-browser.
于 2013-10-30T09:01:28.127 回答
2

我的解决方案是在linux中为windws的chrome创建一个别名

alias launchchrome="\"/mnt/c/Program Files (x86)/Google/Chrome/Application/chrome.exe\""

然后将该别名导出为 linux env 变量

export CHROME_BIN=launchchrome

就是这样,现在如果你运行ng test你的 windows chrome 将被使用!在我的特殊情况下,这个解决方案有效

于 2019-06-07T11:57:41.270 回答
1

今天,当我使用yeoman 生成器 angular设置项目时,我也无法让 chrome 或 phantomjs 与 karma 一起使用。

事实证明,这是该项目特有的问题,修复只是将缺少的插件添加到项目根目录中的 package.json 中。

于 2014-04-05T22:23:48.433 回答