自行捕获浏览器可能是一项繁琐且耗时的任务。但是,Karma 可以为您自动执行此操作。只需将您想要捕获的浏览器添加到配置文件中。
browsers: ['Chrome']
然后,Karma 将负责自动捕获这些浏览器,并在作业结束后关闭它们。
以下是如何将 Firefox 添加到您的测试套件中的示例
# Install the launcher first with npm:
$ npm install karma-firefox-launcher --save-dev
然后,在您的配置文件中,将浏览器名称添加到 browsers
数组中。
module.exports = function(config) {
config.set({
browsers : ['Chrome', 'Firefox']
});
};
另外,请记住,browsers
配置设置默认情况下为空。
当然,您也可以编写自定义插件!
您还可以通过简单地打开 http://<hostname>:<port>/
来捕获浏览器,其中 <hostname>
是 Karma 服务器运行的机器的 IP 地址或主机名,<port>
是 Karma 服务器侦听的端口(默认情况下为 9876
)。使用默认设置,只需将您的浏览器指向 http://localhost:9876/
即可。
这允许您在与运行 Karma 的机器位于同一网络中的任何设备(例如平板电脑或手机)上捕获浏览器(或使用本地隧道)。
某些启动器也可以配置
sauceLabs: {
username: 'michael_jackson'
}
或定义为已配置的启动器
customLaunchers: {
chrome_without_security: {
base: 'Chrome',
flags: ['--disable-web-security']
},
sauce_chrome_win: {
base: 'SauceLabs',
browserName: 'chrome',
platform: 'windows'
}
}
可以为任何自定义启动器设置显示名称。如果设置,则此名称将用于报告而不是用户代理。以下是一个代码片段示例,说明如何为自定义启动器设置显示名称。
customLaunchers: {
chrome_without_security: {
base: 'Chrome',
flags: ['--disable-web-security'],
displayName: 'Chrome w/o security'
}
}
如果定义如上所示,则浏览器将在日志和报告中显示为 Chrome w/o security
。
每个插件都有一些默认路径,用于在特定操作系统上查找浏览器二进制文件。您可以通过 <BROWSER>_BIN
环境变量覆盖这些设置,或者通过创建 符号链接
来覆盖这些设置。
# Changing the path to the Chrome binary
$ export CHROME_BIN=/usr/local/bin/my-chrome-build
# Changing the path to the Chrome Canary binary
$ export CHROME_CANARY_BIN=/usr/local/bin/my-chrome-build
# Changing the path to the PhantomJs binary
$ export PHANTOMJS_BIN=$HOME/local/bin/phantomjs
C:> SET IE_BIN=C:\Program Files\Internet Explorer\iexplore.exe
$Env:FIREFOX_BIN = 'c:\Program Files (x86)\Mozilla Firefox 4.0 Beta 6\firefox.exe'
// in the karma.conf.js
browsers: ['/usr/local/bin/custom-browser.sh'],
// from cli
karma start --browsers /usr/local/bin/custom-browser.sh
浏览器脚本需要接受一个参数,该参数是带有 ID 参数的 URL,用于连接到服务器。提供的 ID 由服务器用于跟踪捕获的特定浏览器。