cucumber-attic / cucumber-ruby-tcl Goto Github PK
View Code? Open in Web Editor NEWTcl bindings for Cucumber
License: MIT License
Tcl bindings for Cucumber
License: MIT License
Cucumber::Tcl::DataTable.to_tcl_list attempts to create a Tcl-safe list by wrapping each array item in braces. This is correct except when the array item itself contains braces or backslashes. These must be escaped with a backslash.
Might need some inspiration from https://github.com/arthurschreiber/tclspec/blob/master/.travis.yml
How can we handle doc strings in step definitions?
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.
Maybe move this into cucumber-core?
https://github.com/cucumber/cucumber/blob/master/lib/cucumber/filters/activate_steps.rb
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
Do we need to implement hooks? Or create a new interpreter?
Currently the when a step_definition is matched, there is no substitution done with any matches, so it's only really useful for full string matches at present.
In cucumber, the env.rb file has special status and is always sourced first. We should replicate this behaviour in cucumber-tcl.
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.
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)
How can we access data bound up in tables via step definitions?
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
proposal, how it could work in principle: cucumber-tcl-wire
the lua implementation seems fine for the start
See the title of the issue.
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.
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.
As far as I can see, we've never added any tests for the behaviour when a step fails.
It would be useful to have acceptance tests for this so we can pin down the behaviour about reporting Tcl backtraces etc.
@jowers do you want to add some characterization tests and we can see where we are?
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
@mattwynne, could you add Shaun Bristow (@ahhbristow) as an owner of this repository?
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.
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?
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 |
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.