我正在尝试Testem将我的测试启动到加载了特定扩展程序的Chrome浏览器中,但是默认情况下,它是空白的Chrome配置文件,已启动,并且该配置文件不会持久保存从一个运行到另一个运行的扩展程序。

例如,我的目标是让Testem启动预装了Ember Inspector的Chrome浏览器,以便我可以使用该工具调试测试。

我想知道是否可能,如果可以,如何。

最佳答案

不幸的是,似乎没有一种可以找到的内置方法。

如果您想要一种快速而又肮脏的解决方案,我建议您执行以下操作:
testem中定义了testem/lib/browser_launcher.js中可用的浏览器。如果要修改ember-cli使用的文件,将使用完整路径:

<your-app-dir>/node_modules/ember-cli/node_modules/testem/lib/browser_launcher.js

该文件具有一个称为browsersForPlatform()的功能。查找您的平台和Chrome条目。对于达尔文,相关条目如下:
      {
        name: "Chrome",
        exe: "/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome",
        args: ["--user-data-dir=" + tempDir + "/testem.chrome", "--no-default-browser-check", "--no-first-run", "--ignore-certificate-errors"],
        setup: function(config, done){
          rimraf(tempDir + '/testem.chrome', done)
        },
        supported: browserExeExists
      },

您将需要更改args,以便随心所欲地对其进行调用。我的猜测是,问题是--user-data-dir指向tmp目录。也许简单地删除它就可以解决问题。

理想情况下,testem将在testem.json文件中提供一种方法来覆盖浏览器选项。如果您有兴趣并且维护者之间有兴趣,那么这可能是对testem项目的相当直接的贡献。

如果您选择更改browser_launcher.js的路线,请记住,每次更新节点程序包时,它都会被破坏。我认为有一种方法可以安装 fork 的版本,然后使副本保持最新状态(如果您认为合适)。

10-02 12:42