All Projects → cucumber → cucumber-lua

cucumber / cucumber-lua

Licence: MIT license
A cucumber wire protocol implementation for Lua step definitions

Programming Languages

lua
6591 projects
Gherkin
971 projects
ruby
36898 projects - #4 most used programming language
Makefile
30231 projects

Cucumber-Lua

Build Status

A wire protocol implementation for cucumber that executes steps defined in Lua

Installation

  1. Install Lua 5.2

  2. Install cucumber-lua using luarocks:

luarocks build https://raw.github.com/cucumber/cucumber-lua/master/cucumber-lua-0.0-2.rockspec
  1. Add a .wire file telling cucumber that Lua is listening:
/features/step_definitions/cucumber-lua.wire
host: 0.0.0.0
port: 9666

Usage

Run the cucumber-lua server:

cucumber-lua

Then run cucumber in another terminal:

cucumber

Lua Step Definitions

cucumber-lua expects you to define a single file for step definitions (features/step_definitions/steps.lua). If you need anything more than a single file, use lua modules and require them from your main steps file (that means we don't need luafilesystem)

/features/step_definitions/steps.lua
Calculator = require("calculator")

Before(function()
    Calculator:Reset()
end)

Given("I have entered (%d+) into the calculator", function (number)
    Calculator:Enter(number)
end)

When("I press add", function ()
    Calculator:Add()
end)

Then("the result should be (%d+) on the screen", function (number)
    assert(Calculator.result == tonumber(number),
           "Expected " .. number .. ", was " .. Calculator.result)
end)

Then("Something not yet implemented", function ()
    Pending("It's not ready yet")
end)

Running the Cucumber-Lua specs

lua spec/runner.lua
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].