ブラウザスタック機能のマトリックスについて、うなり声を介してcucumberjsテストを実行しようとしています。
マトリックスは通常 "grunt" で構成されます (qcuberbatch はローカルの grunt タスク定義です)。
grunt.initConfig
qcumberbatch:
options:
steps: 'src/features/integration/steps'
tags: '~@ShouldFail'
browserstack:
'browserstack.user' : process.env.BS_USER
'browserstack.key' : process.env.BS_ACCESS_KEY
'browserstack.tunnel' : 'true' # This was the secret!
matrix: [
browser: 'firefox'
browser_version: '26.0'
os: 'Windows'
os_version : '7',
,
browser : 'IE',
browser_version : '9.0',
os : 'Windows',
os_version : '7',
resolution : '1024x768'
]
hub: "http://hub.browserstack.com/wd/hub"
local:
files:
src: ['src/features/integration/*']
options:
hub: 'http://localhost:4444/wd/hub'
matrix: ['firefox']
browserstack:
files:
src: ['src/features/integration/*']
failing:
files:
src: ['src/features/integration/*']
options:
tags: '@ShouldFail'
デフォルトのオプションでは、Windows 7 で firefox と IE を使用して browserstack に対して実行され、ローカル テストでは browserstack をオーバーライドしてローカルの Selenium Webdriver ハブを使用します。
きゅうりの世界は、機能オブジェクトを受け取るコンストラクターでセットアップされます。
module.exports = class World
###
Create a new world, assuming firefox capabilities.
@param {string} browser property name from the `webdriver.Capabilities`
list.
###
constructor: (capabilities = {browserName: "firefox"})->
@driver = new webdriver.Builder().
usingServer(process.env.SELENIUM_HUB).
withCapabilities(capabilities).build()
@driver.manage().timeouts().setScriptTimeout(10000)
これを grunt から実行するときの問題は、cucumberjs にプログラム インターフェイスがないことです (私が見ているように)。いくつかの機能ブロックのどれを実行時にロードするかを構成する機能がなければ、cucumberjs の実行と grunt の間で機能を通信するにはどうすればよいですか?