This repository contains code which allows cucumber-js BDD framework to be wrapped around a testing tool by means of a custom driver.
- Download and install nodejs
- Run :
npm install -g yo generator-wrap-bdd cucumber
- Create a local folder for storing the necessary cucumber-js artifacts :
mkdir bdd
cd bdd
yo wrap-bdd
All source is written using coffee script. In the command prompt of root directory use the following to quickly compile all coffee script source:
coffee --compile --output lib/ src/
To wrap cucumber-js BDD with any testing tool, a testtoolfactory.coffee is provided to return an appropriate instance of the test tool driver. When writing the test tool driver, the only two criteria are that the test driver expose a testResult method and test driver emit a testResult event. The testResult method accepts a callback function with a boolean parameter. The 'testResult' event should be emitted when the testing tool has finished and returned result. Following are sample blocks where you will need to make changes when introducing a new test driver:
createObject: (paramObj) ->
switch process.env.oletesttool
when 'TestComplete'
new tc paramObj
when 'TestExecute'
new te paramObj
else
throw new TypeError 'Invalid/Unsupported Testing tool. Fix: set oletesttool=TestComplete'
module.exports = class tcdriver extends EventEmitter
constructor: (paramObj,tool) ->
# do something and maybe you want to emit the 'testResult' event here
testresult: (cb)->
cb @result
return
Still need to work on this.