Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
A cucumber wire protocol implementation for Lua step definitions
Lua Ruby Makefile
branch: master
Failed to load latest commit information.
bin
examples/calculator merge britzl/renamed_example_folder
features updates for Lua 5.2 compatibility
spec lua 5.2 compatible regex
src Merge pull request #5 from britzl/fix/global_response
.gitignore cucumber-lua 0.0.1
Gemfile use https://rubygems.org in gemfile
Gemfile.lock upgrade ruby dependencies
LICENSE license
Makefile updates for Lua 5.2 compatibility
README.md Lua syntax highlighting in readme
cucumber-lua-0.0-2.rockspec updates for Lua 5.2 compatibility
server.lua cucumber-lua 0.0.1

README.md

Cucumber-Lua

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
Something went wrong with that request. Please try again.