【问题标题】:Starting Meteor with Velocity test without the Chrome pop-up在没有 Chrome 弹出窗口的情况下使用 Velocity 测试启动 Meteor
【发布时间】:2015-01-29 13:51:29
【问题描述】:

在收集有关如何使用 Velocity 的知识的过程中,我遇到了一个 sn-p,它提到了一个 shell 变量来设置用于在 PhantomJS 中运行 Karma 的浏览器 Velocity,就像每次创建一个 Chrome 窗口弹出窗口一样我在开发模式下运行我的应用程序。当时我对此不以为然,但在我的两个应用程序中实施了一些测试之后,我可以说让测试在弹出窗口中运行是一种恼人的痛苦。

有人知道如何让测试在 PhantomJS 中运行,而不是在 Chrome 弹出窗口中运行吗?我认为该变量类似于 VELOCITY_BROWSER=PhantomJS,但这似乎不起作用。另外,有没有办法设置 Meteor,让它简单地将其设置为默认值,这样我就不必每次都创建变量,就像在配置或其他东西中一样?

【问题讨论】:

    标签: meteor meteor-velocity


    【解决方案1】:

    我为那些发现这个问题的人找到了答案,并且还想知道如何防止 Karma 弹出窗口。

    我正在使用 sanjo:jasmine 测试套件,它使用 Karma 进行客户端集成测试。您可以在运行流星时将默认浏览器设置为 PhantomJS,只需将其添加到您的环境中即可:

    JASMINE_BROWSER=PhantomJS
    

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

    JASMINE_CLIENT_UNIT=0
    

    因此,例如,您可以像JASMINE_BROWSER=PhantomJS meteor 这样运行您的应用程序,您将不会再看到弹出窗口。我所做的是在我的应用程序根文件夹中创建了一个 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
    

    希望这对将来的某人有所帮助。

    【讨论】:

    • 这个!这是一千倍!谢谢!
    • 在阅读 Jasmine 问题时,作者似乎计划将 PhantomJS 设为默认值,因此现在可能需要在早上进行。与此同时,我一直在使用我的 shell 脚本开始一切,实际上通过将其更改为 JASMINE_BROWSER=PhantomJS meteor $@ 将其修改为更“健壮”。这样,传递给它的任何参数都将简单地传递给流星调用。您也可以修改它以设置您可能需要的任何其他设置。
    • (OSX)附加,如果出于某种原因,例如我的情况,日志告诉您它找不到phantomjs 可执行文件,您需要设置PHANTOMJS_BIN。我使用自制软件安装了 phantomjs,因此更新后的别名命令如下所示:alias phantommeteor="PHANTOMJS_BIN=\"/usr/local/bin/phantomjs\" JASMINE_BROWSER=PhantomJS meteor"
    • 对于调试,查看对我来说位于<your-app-dir>/.meteor/local/log/jasmine-client-integration.log 的日志文件很有用。这就是我发现我需要设置PHANTOMJS_BIN
    【解决方案2】:

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

    如果您想继续使用 Chrome 窗口,可以使用 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])
    

    窗口会出现,但会在屏幕外创建,幸运的是,它甚至没有窃取键盘焦点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-01
      • 2017-09-11
      相关资源
      最近更新 更多