8

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

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

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

4

1 回答 1

3

不幸的是,似乎没有我能找到的内置方式。

如果您想要一个快速而肮脏的解决方案,我建议您执行以下操作:

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请记住每次更新节点包时它都会被破坏。我假设有一种方法可以安装分叉版本,然后根据需要保持副本为最新。

于 2015-01-27T04:45:08.980 回答