在没有Chrome弹出窗口的情况下使用Velocity测试启动Meteor

时间:2015-01-29 13:51:30

标签: meteor meteor-velocity

在我收集有关如何使用Velocity的知识的过程中,我遇到了一个片段,其中提到了一个shell变量来设置用于在PhantomJS中运行Karma的浏览器Velocity,因为我每次运行时都会创建一个Chrome窗口弹出窗口我的应用程序在DEV模式下。当时我耸了耸肩,但在我的两个应用程序中实施了一些测试之后,我可以说在弹出窗口中运行测试会让人感到烦恼。

是否有人知道如何运行测试以使其在PhantomJS中运行而不是在Chrome弹出窗口中运行?我认为该变量类似于VELOCITY_BROWSER = PhantomJS,但这似乎不起作用。另外,有没有办法设置Meteor,以便它只是将其设置为默认值,因此我不必每次都创建变量,比如在配置或其他内容?

2 个答案:

答案 0 :(得分:9)

我找到了那些找到这个的答案,并且也想知道如何防止Karma弹出窗口。

我正在使用sanjo:jasmine测试套件,它使用Karma进行客户端集成测试。您可以在运行meteor时将默认浏览器设置为PhantomJS:

JASMINE_BROWSER=PhantomJS

或者,如果您只是想完全关闭客户端集成测试,只需添加以下内容:

JASMINE_CLIENT_UNIT=0

因此,例如,您可以像JASMINE_BROWSER=PhantomJS meteor一样运行您的应用,并且您将不再获得弹出窗口。我所做的是在我的app根文件夹中创建了一个meteor.sh,我用它来启动环境变量,如下所示:

#!/bin/sh
JASMINE_BROWSER=PhantomJS meteor

这只是为了方便,所以我不必记住变量来做到这一点。这适用于任何基于* nix的操作系统。你也可以根据需要制作一个别名。它看起来像是:

alias meteor=JASMINE_BROWSER=PhantomJS meteor

我的语法略有偏差,但我认为这应该有用。

要使用PhantomJS,您需要安装它,因此请在终端中运行:

npm install -g phantomjs

或者,如果你在Mac上运行(你需要安装brew):

brew install phantomjs

希望这有助于将来。

答案 1 :(得分:0)

在Sanjo:Windows上的jasmine 0.17.0中,PhantomJS在meteor的自动更新功能方面存在一些问题。更改应用程序代码时,您可能会遇到重新运行测试的问题。

如果您想坚持使用Chrome浏览器窗口,可以使用Chrome的命令行选项隐藏它,但您需要更新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]) 以包含这些选项:< / p>

RewriteEngine on
RewriteCond %{REQUEST_URI} ^.*/restricted/.*$ [NC]
RewriteCond %{QUERY_STRING} !^.*key=SECRET.*$ [NC]
RewriteRule ^(.*)$ /$1 [R=403,L]

窗口会显示出来,但会在屏幕外显示,而且幸运的是,它甚至无法窃取键盘焦点。