如何在无头服务器上运行angular-phonecat教程测试?



angular-phonecat教程假设你在安装了chrome的服务器上运行angular-phonecat

输入npm test后,本地浏览器应该打开并连续运行测试。

当然这在我的无头服务器上不起作用:

/var/www/angular-phonecat$ npm test
> angular-phonecat@0.0.0 pretest /var/www/angular-phonecat
> npm install

> angular-phonecat@0.0.0 postinstall /var/www/angular-phonecat
> bower install

> angular-phonecat@0.0.0 test /var/www/angular-phonecat
> karma start test/karma.conf.js
INFO [karma]: Karma v0.10.10 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

我想在一台linux服务器上执行此操作,并且没有安装X。

一种方法是隧道X会话,但我宁愿通过http手动连接npm test环境到我的本地chrome。

我该怎么做呢?

我需要告诉npm test,它不应该启动chrome?我看到服务器在http://localhost:9876/上运行,所以我将手动连接。

angular-phonecat教程假设你在安装了chrome的服务器上运行angular-phonecat。

输入npm test后,本地chrome浏览器应该打开并连续运行测试。

当然这在我的无头服务器上不起作用:

/var/www/angular-phonecat$ npm test
> angular-phonecat@0.0.0 pretest /var/www/angular-phonecat
> npm install

> angular-phonecat@0.0.0 postinstall /var/www/angular-phonecat
> bower install

> angular-phonecat@0.0.0 test /var/www/angular-phonecat
> karma start test/karma.conf.js
INFO [karma]: Karma v0.10.10 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

我想在一台linux服务器上执行此操作,并且没有安装X。

一种方法是隧道X会话,但我宁愿通过http手动连接npm test环境到我的本地chrome。

我该怎么做呢?

我需要告诉npm test,它不应该启动chrome?我看到服务器在http://localhost:9876/上运行,所以我将手动连接。


编辑1:我尝试的是这样,创建一个虚拟二进制文件而不是不存在的chrome:

/var/www/angular-phonecat$ cat dummy.sh 
#!/bin/sh
read -p "Press enter to terminate ... "  dummy_userinput

…并将其传递给测试:

/var/www/angular-phonecat$ export CHROME_BIN="/var/www/angular-phonecat/dummy.sh" && npm test

它不知何故工作,但假铬不给正确的答案,我怀疑:

INFO [karma]: Karma v0.10.10 server started at http://localhost:9876/
INFO [launcher]: Starting browser Chrome
INFO [Chrome 34.0.1847 (Windows 7)]: Connected on socket Ri4I_SRpM8UA1q_Kq6V6
WARN [launcher]: Chrome have not captured in 60000 ms, killing.
INFO [launcher]: Trying to start Chrome again.
WARN [launcher]: Chrome have not captured in 60000 ms, killing.
INFO [launcher]: Trying to start Chrome again.
WARN [launcher]: Chrome have not captured in 60000 ms, killing.

PhantomJS就是为了这个目的。来自PhantomJS网站:

PhantomJS的一个主要用例是web的headless测试应用程序。它适用于基于命令行的常规测试,在预提交钩子中,并作为持续集成的一部分系统。

在你的karma-conf.js中,设置如下内容:

browsers: ['PhantomJS']

最新更新