-
Notifications
You must be signed in to change notification settings - Fork 2
derfred/trac_cucumber_plugin
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Introduction ============ This plugin allows you to integrate cucumber with Trac. It will allow you to enter User Stories in a wiki page and execute them as part of a continuous integration build. The results of the story execution will then be displayed in the wiki page. Example ======= The following example will create a story named user_login with the tags wiki and login: {{{ #!CucumberStory #name: manage_login Feature: User login In order to use the site as an unauthenticated visitors i want to be able to login Scenario: Logging in Given I am on the homepage When I enter my login details And press "Login" Then I should see my name }}} If, when opening the page, the story has already been run and its output is present in the database Use Cases ========= The following is a list of possible interactions of the user with the plugin New Feature is entered ---------------------- * User edits page * User adds new story * new story is extracted and saved in a .feature file * the name for the file is taken from the macro parameters * callback to observers is made Existing Feature (which has been run before) is displayed --------------------------------------------------------- * User visits a page with an embedded story * The story database is queried for the story * the key is taken from the macro parameters * result of story execution is displayed * scenarios are collapsed and coloured according to their status * error messages for failed steps are shown in a popup New Feature (which has not been run before) is displayed --------------------------------------------------------- * User visits a page with an embedded story * The story database is queried for the story * the key is taken from the macro parameters * the database returns a record_not_found * a pending execution message is displayed Existing Feature is edited -------------------------- * User edits page * User changes an existing story * new story is extracted and saved in a .feature file, overwriting the existing * the name for the file is taken from the macro parameters * callback to observers is made Trac-Macros =========== * CucumberStory - wraps a story * Arguments: - name: name of the story, this must be unique - tags (optional): a number of tags to be associated with this story Components ========== CucumberPlugin -------------- represents the plugin Extension points: - observer: receives callbacks on add and edit of stories - database: interfaces with the story database - story_renderer: renders a story CucumberDatabase ---------------- interface to the story database - saves and updates stories extracted from the wiki - returns the output for stories - maintains the mapping of story names to page names (this is required to be able to remove stories) Configuration: - location: location of the story database CucumberStoryRenderer --------------------- renders story output to HTML CucumberStoryMacro ------------------ macro for rendering a single story Interfaces ========== class ICucumberDatabase: def save_story(name, story, tags): """Save the given story under the given name with the given tags""" def get_story(name): """retrieve the output for given story, None if story has not yet executed""" class ICucumberStoryRenderer: def render_story_output(story): """turn the output of the given story into HTML""" class ICucumberObserver: def story_added(story_name, story, tags): """called when a new story is added""" def story_edited(story_name, story, tags): """called when an existing story is edited"""
About
Plugin for Trac, which allows you to write Cucumber stories in Trac and display the result of their execution
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published