3

我使用 npm 在 Mac OS X 10.8.3 上设置了标准的 yeoman/angular 安装。我使用 yo 生成器创建了一个新的 Angular 项目。我通过npm install -g phantomjs. 我将业力配置为不使用 phantomjs(所有其他浏览器都可以正常工作)。使用 运行测试时grunt test,phantomjs 根本不会捕获,即使我设置了很长的超时时间(50000 毫秒)。这是日志输出:

Running "karma:unit" (karma) task
DEBUG [reporter]: Using reporter "progress".
INFO [karma]: Karma server started at http://localhost:8080/
INFO [launcher]: Starting browser PhantomJS
DEBUG [launcher]: Creating temp dir at /var/folders/6j/gz50dm2d3xv1hnz7s1t4lhn40000gp/T/testacular-79891032
DEBUG [launcher]: /usr/local/bin/phantomjs /var/folders/6j/gz50dm2d3xv1hnz7s1t4lhn40000gp/T/testacular-79891032/capture.js
WARN [watcher]: Pattern "/Users/alexanderwalter/Development/angularSeed/test/mock/**/*.js" does not match any file.
DEBUG [watcher]: Resolved files:
    /Users/alexanderwalter/Development/angularSeed/node_modules/grunt-karma/node_modules/karma/adapter/lib/jasmine.js
    /Users/alexanderwalter/Development/angularSeed/node_modules/grunt-karma/node_modules/karma/adapter/jasmine.js
    /Users/alexanderwalter/Development/angularSeed/app/components/angular/angular.js
    /Users/alexanderwalter/Development/angularSeed/app/components/angular-mocks/angular-mocks.js
    /Users/alexanderwalter/Development/angularSeed/app/scripts/app.js
    /Users/alexanderwalter/Development/angularSeed/app/scripts/controllers/add.js
    /Users/alexanderwalter/Development/angularSeed/app/scripts/controllers/main.js
    /Users/alexanderwalter/Development/angularSeed/test/spec/controllers/add.js
    /Users/alexanderwalter/Development/angularSeed/test/spec/controllers/main.js
DEBUG [web server]: serving: /Users/alexanderwalter/Development/angularSeed/node_modules/grunt-karma/node_modules/karma/static/client.html
DEBUG [web server]: serving: /Users/alexanderwalter/Development/angularSeed/node_modules/grunt-karma/node_modules/karma/static/testacular.js
DEBUG [karma]: New browser has connected on socket wxBffi5IEZn9zQvoTm0J
WARN [launcher]: PhantomJS have not captured in 50000 ms, killing.
DEBUG [launcher]: Process PhantomJS exitted with code 1
ERROR [launcher]: Cannot start PhantomJS

正如我所说,它适用于所有其他浏览器。如果我向 Phantomjs 传递一个将 hello world 打印到控制台的简单测试脚本,它也可以工作。

4

3 回答 3

6

我遇到了同样的问题,发现这是 nodejs 0.10.8/0.10.9 的问题:https ://github.com/karma-runner/karma/issues/558

降级到 nodejs 0.10.7 为我解决了这个问题。

于 2013-05-31T23:36:44.990 回答
1

如果您想使用节点 0.10.11,代理选项对我有用(Mac 10.6.8、Karma 0.8.5 和节点 0.10.11 或 0.10.7。节点 0.10.8/9/10 没有工作。)。

在 karma.conf.js 文件中:

proxies = {
'/': 'http://localhost:9000'
};
urlRoot = '/__unit/';

在 karma-e2e.conf.js 文件中:

proxies = {
'/': 'http://localhost:9000'
};
urlRoot = '/__e2e/';
于 2013-06-14T20:45:29.527 回答
0

我升级到了 Node.js 的最新稳定版本。这为我解决了。目前 v.10.20。

于 2013-10-12T09:05:40.930 回答