在没有 Chrome 弹出窗口的情况下启动 Meteor with Velocity 测试
Starting Meteor with Velocity test without the Chrome pop-up
为了收集有关如何使用 Velocity 的知识,我 运行 在一个片段中提到了一个 shell 变量来设置用于 运行 PhantomJS 中的 Karma 的浏览器 Velocity与每次我 运行 我的应用程序处于 DEV 模式时创建一个 Chrome window 弹出窗口不同。当时我耸了耸肩,但在我的两个应用程序中实施了一些测试后,我可以说在弹出窗口 window 中进行测试是一件令人讨厌的痛苦 window。
有人知道如何在 PhantomJS 中 运行 而不是在 Chrome 弹出窗口 windows 中获得测试 运行ning 吗?我认为该变量类似于 VELOCITY_BROWSER=PhantomJS,但这似乎不起作用。此外,有没有一种方法可以设置 Meteor,以便它只需将其设置为默认值,这样我就不必每次都创建变量,比如在配置或其他东西中?
我为那些找到这个的人找到了答案,也想知道如何防止 Karma 弹出窗口。
我正在使用 sanjo:jasmine 测试套件,它使用 Karma 进行客户端集成测试。您可以将默认浏览器设置为 PhantomJS,只需在 运行 meteor:
时将其添加到您的环境即可
JASMINE_BROWSER=PhantomJS
或者,如果您只想完全关闭客户端集成测试,只需添加以下内容:
JASMINE_CLIENT_UNIT=0
因此,例如,您可以 运行 您的应用程序 JASMINE_BROWSER=PhantomJS meteor
,您将不会再看到弹出窗口。我所做的是在我的应用程序根文件夹中创建了一个 meteor.sh,我用它来启动环境变量,如下所示:
#!/bin/sh
JASMINE_BROWSER=PhantomJS meteor
这只是为了方便起见,这样我就不必记住变量来执行此操作。这应该适用于任何基于 *nix 的 OS。如果需要,您也可以创建别名。它看起来像:
alias meteor=JASMINE_BROWSER=PhantomJS meteor
我的语法可能略有偏差,但我认为应该可以。
要使用 PhantomJS,您需要安装它,所以 运行 在终端中这样做:
npm install -g phantomjs
或者,如果您使用 Mac 运行(您需要安装 brew):
brew install phantomjs
希望这对以后的人有所帮助。
在 sanjo:jasmine 0.17.0 on Windows 中,PhantomJS 在 meteor 的自动更新功能方面存在一些问题。当您更改应用程序的代码时,重新运行 测试可能会遇到问题。
如果您想坚持使用 Chrome window,可以使用 chrome 的命令行选项稍微隐藏它,但您需要更新 karma-chrome-launcher\index.js
包括这些:
return [
'--user-data-dir=' + this._tempDir,
'--no-default-browser-check',
'--no-first-run',
'--disable-default-apps',
'--disable-popup-blocking',
'--disable-translate',
'--window-position=-800,0', // <-- added
'--window-size=800,600' // <-- added
].concat(flags, [url])
window 会出现,但会在屏幕外创建,幸运的是甚至不会窃取键盘焦点。
为了收集有关如何使用 Velocity 的知识,我 运行 在一个片段中提到了一个 shell 变量来设置用于 运行 PhantomJS 中的 Karma 的浏览器 Velocity与每次我 运行 我的应用程序处于 DEV 模式时创建一个 Chrome window 弹出窗口不同。当时我耸了耸肩,但在我的两个应用程序中实施了一些测试后,我可以说在弹出窗口 window 中进行测试是一件令人讨厌的痛苦 window。
有人知道如何在 PhantomJS 中 运行 而不是在 Chrome 弹出窗口 windows 中获得测试 运行ning 吗?我认为该变量类似于 VELOCITY_BROWSER=PhantomJS,但这似乎不起作用。此外,有没有一种方法可以设置 Meteor,以便它只需将其设置为默认值,这样我就不必每次都创建变量,比如在配置或其他东西中?
我为那些找到这个的人找到了答案,也想知道如何防止 Karma 弹出窗口。
我正在使用 sanjo:jasmine 测试套件,它使用 Karma 进行客户端集成测试。您可以将默认浏览器设置为 PhantomJS,只需在 运行 meteor:
时将其添加到您的环境即可JASMINE_BROWSER=PhantomJS
或者,如果您只想完全关闭客户端集成测试,只需添加以下内容:
JASMINE_CLIENT_UNIT=0
因此,例如,您可以 运行 您的应用程序 JASMINE_BROWSER=PhantomJS meteor
,您将不会再看到弹出窗口。我所做的是在我的应用程序根文件夹中创建了一个 meteor.sh,我用它来启动环境变量,如下所示:
#!/bin/sh
JASMINE_BROWSER=PhantomJS meteor
这只是为了方便起见,这样我就不必记住变量来执行此操作。这应该适用于任何基于 *nix 的 OS。如果需要,您也可以创建别名。它看起来像:
alias meteor=JASMINE_BROWSER=PhantomJS meteor
我的语法可能略有偏差,但我认为应该可以。
要使用 PhantomJS,您需要安装它,所以 运行 在终端中这样做:
npm install -g phantomjs
或者,如果您使用 Mac 运行(您需要安装 brew):
brew install phantomjs
希望这对以后的人有所帮助。
在 sanjo:jasmine 0.17.0 on Windows 中,PhantomJS 在 meteor 的自动更新功能方面存在一些问题。当您更改应用程序的代码时,重新运行 测试可能会遇到问题。
如果您想坚持使用 Chrome window,可以使用 chrome 的命令行选项稍微隐藏它,但您需要更新 karma-chrome-launcher\index.js
包括这些:
return [
'--user-data-dir=' + this._tempDir,
'--no-default-browser-check',
'--no-first-run',
'--disable-default-apps',
'--disable-popup-blocking',
'--disable-translate',
'--window-position=-800,0', // <-- added
'--window-size=800,600' // <-- added
].concat(flags, [url])
window 会出现,但会在屏幕外创建,幸运的是甚至不会窃取键盘焦点。