Giter Club home page Giter Club logo

cucumber-ruby-tcl's People

Contributors

ahhbristow avatar jowers avatar mattwynne avatar mlvandijk avatar mxygem avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cucumber-ruby-tcl's Issues

Implement hooks

Currently, as each scenario is a new tcl interpreter, we have been using inline tcl to perform setup tasks for our tests. However, as there is no order to the files being sourced, we have hit a few problems with dependencies (e.g. trying to call a proc before it has been initialised).

It would be good if we were able to have before/after hooks to allow us to perform the initialisation in the before hook, knowing that everything has been sourced by that point.

@mattwynne, would this require changes to cucumber to allow hooks to be passed through?

Note - we'd need to consider what scope things are being run in if looking at this.

Step locations

When Cucumber prints the scenario, it ideally needs a location for each step so it can print them to the user.

Example (imagined):

Scenario:
    Given the range is 1000m                       # features/step_definition/steps.tcl:2
    And Samantha is 1000m from Bob                 # features/step_definition/steps.tcl:5
      TODO (Tcl::Error)
      features/hear_shout.feature:8:in `And Samantha is 1000m from Bob'
    When Bob sends a message "hello"               # features/step_definition/steps.tcl:10
    Then Samantha should hear "hello"              # features/step_definition/steps.tcl:15

Provide Error trace for file sourcing

Currently we provide a full stack trace for errors during the scenarios, but if there is an error when sourcing files, just the error message is displayed.

Display line number where pending was called in backtrace

De-scoped from #22.

example:

     Scenario:
           Given pending
             TODO: Step not yet implemented (Cucumber::Core::Test::Result::Pending)
             features/step_definitions/steps.tcl:2
             features/test.feature:3:in `Given pending'

       1 scenario (1 pending)
       1 step (1 pending)

Wire protocol implementation?

Feature: Wire protocol
   In order to specify behavior of embedded Tcl software
   As a responsible developer writing stuff in Tcl
   I want to be able to drive steps defined in Tcl via the Cucumber wire protocol

embedded, as in Tcl interpreter hosted in a native app (or even in Ruby), where tcl*.dll is not available

analysis

proposal, how it could work in principle: cucumber-tcl-wire

cucumber-lua

the lua implementation seems fine for the start

Snippets

Luxury feature this, but we should aim for it.

When a step is undefined, Cucumber should delegate to Cucumber-Tcl to get snippet suggestions for Tcl, then print them to the console.

Archive this project

This project hasn't been touched in several years. Unless someone steps forward to maintain it, I'm going to archive it.

That could be undone later, but I want to signal to people clearly that it's currently unmaintained.

Namespace issues with sourced tcl files

With the recent change to use namespaces, helper files (e.g. env.tcl) are being evaluated in the cucumber namespace, which is going to cause problems with things like package require, which should be evaluated in the global scope

Duplicate matches?

What happens if two regexps both match the same step?

e.g.

Given passing
Given {^passing$} {
}

Given {^pass*$} {
}

In Ruby Cucumber this would throw an error.

Pending Steps

It would be nice to have a way of marking steps as pending.

It should be easy to add a pending proc in tcl, but not sure what we'd need to do to get cucumber to display it as pending in the output?

Data Table Helpers

We should add in a set of procs to help handle different data table types.

Examples taken from pull request #14

| heading_1 | heading_2 |
| data 1 | data 2 |

| heading_1 | data 1 |
| heading_2 | data 2 |

and, of course, something with multiple values in:

| heading_1 | heading_2 |
| row_1 1 | row_1 2 |
| row_2 1 | row_2 2 |
| row_3 1 | row_3 2 |

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.