我正在尝试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 的版本,然后使副本保持最新状态(如果您认为合适)。