I should clarify what might not be obvious from the code:
This builds two sets of pages in the wiki:

- Features, which are basically just a dump of the features files into wiki
format, added as children of the main "Features" page (confluence lets you
have parent/child relationships, which is great for this sort of thing - no
need to create an index page)

- Stories, which are our user stories; these are written by hand, and the
script looks for story tags on each scenario, and if it finds a matching
story in the wiki, it inserts the scenario into that wiki page (and links it
back to the matching feature page).

So, for example, I might have features:
----
Feature: top level tabs (in tabs.feature)
  @story-f-001 @story-f-002 @qa
  Scenario: visit the foo tab
    Given I am viewing the main page
    When I navigate to the "Foo" tab
    Then I should be on the "Foo" panel
----
Feature: foo wrangling (in foo.feature)
  @story-f-001 @qa
  Scenario: display all foos
     Given I am viewing the "Foo" panel
     When I select "view all"
     Then I should see all foos in the system

Running "cucumber --dry-run --format WikiFormatter" will build new wiki
pages "tabs" and "foo", and if there is a story page called "foo-1" it will
add the tagged scenarios to it as well. (in a special "qa" section in this
case)

- Korny

On Tue, Apr 14, 2009 at 5:11 PM, Korny Sietsma <ko...@sietsma.com> wrote:

> Good idea.  It's at http://gist.github.com/95033
> And as I said before, it's pretty hacky :)
>
> - Korny
>
>
> On Tue, Apr 14, 2009 at 3:11 PM, aslak hellesoy 
> <aslak.helle...@gmail.com>wrote:
>
>>
>>
>> On Tue, Apr 14, 2009 at 6:06 AM, Korny Sietsma <ko...@sietsma.com> wrote:
>>
>>> In case anyone followed this: I got everything working pretty nicely -
>>> now I have a cucumber formatter that automatically updates a confluence
>>> wiki.
>>>
>>> I still have to cover some bits like table outputs and the like, but the
>>> basics are pretty nice - I use cucumber to parse the features and create a
>>> wiki page per feature file with the (complete) feature, and I also check for
>>> scenarios with tags like "@story-blah", and update the corresponding story
>>> page in the wiki.
>>>
>>> I'm not sure this stuff is much use generally, it's pretty tightly
>>> coupled to how we have our wiki set up - but I'm happy to share the (messy)
>>> code if anyone is interested.
>>>
>>
>> Why not share it as a http://gist.github.com/ ?
>>
>> Aslak
>>
>>
>>> - Korny
>>>
>>>
>>> On Wed, Apr 8, 2009 at 4:24 PM, Korny Sietsma <ko...@sietsma.com> wrote:
>>>
>>>> Hmm - on digging further, I might be better off writing a custom
>>>> formatter as described at
>>>> http://wiki.github.com/aslakhellesoy/cucumber/custom-formatters, and
>>>> just invoking cucumber with --dry-run and my formatter...  Though as I want
>>>> to use the html formatter to format steps for insertion into the wiki, I've
>>>> still got some work to do :)
>>>>
>>>> - korny
>>>>
>>>>
>>>> On Wed, Apr 8, 2009 at 11:01 AM, Korny Sietsma <ko...@sietsma.com>wrote:
>>>>
>>>>> Hi folks,
>>>>> I'm writing some scripts to integrate our cucumber features with
>>>>> stories stored in a wiki, and I'm hoping to use cucumber's parser to parse
>>>>> the features rather than doing it manually.  (I don't really care about 
>>>>> the
>>>>> feature contents much, just scenario titles and tags)
>>>>>
>>>>> I've worked out how to parse the features:
>>>>>       Cucumber.load_language('en')
>>>>>       features = Cucumber::Ast::Features.new
>>>>>       parser = Cucumber::Parser::FeatureParser.new
>>>>>
>>>>>       feature_files = Dir["#{FEATURE_DIR}/**/*.feature"]
>>>>>
>>>>>       feature_files.each do |f|
>>>>>         puts "parsing feature file #{f}"
>>>>>         features.add_feature(parser.parse_file(f))
>>>>>       end
>>>>>
>>>>> But now I'm digging in to the whole ast visitor thing, and it's getting
>>>>> quite complex to *do* stuff with the features once I've parsed them.
>>>>>
>>>>> I'm sure I can work this out myself, given time, but I was wondering if
>>>>> there are any code examples out there to save me some of the time/effort?
>>>>> Anyone else tried parsing features like this from outside Cucumber itself?
>>>>>
>>>>> Thanks!
>>>>>
>>>>> - Korny
>>>>>
>>>>> --
>>>>> Kornelis Sietsma  korny at my surname dot com
>>>>> "Every jumbled pile of person has a thinking part
>>>>> that wonders what the part that isn't thinking
>>>>> isn't thinking of"
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Kornelis Sietsma  korny at my surname dot com
>>>> "Every jumbled pile of person has a thinking part
>>>> that wonders what the part that isn't thinking
>>>> isn't thinking of"
>>>>
>>>
>>>
>>>
>>> --
>>> Kornelis Sietsma  korny at my surname dot com
>>> "Every jumbled pile of person has a thinking part
>>> that wonders what the part that isn't thinking
>>> isn't thinking of"
>>>
>>> _______________________________________________
>>> rspec-users mailing list
>>> rspec-users@rubyforge.org
>>> http://rubyforge.org/mailman/listinfo/rspec-users
>>>
>>
>>
>> _______________________________________________
>> rspec-users mailing list
>> rspec-users@rubyforge.org
>> http://rubyforge.org/mailman/listinfo/rspec-users
>>
>
>
>
> --
> Kornelis Sietsma  korny at my surname dot com
> "Every jumbled pile of person has a thinking part
> that wonders what the part that isn't thinking
> isn't thinking of"
>



-- 
Kornelis Sietsma  korny at my surname dot com
"Every jumbled pile of person has a thinking part
that wonders what the part that isn't thinking
isn't thinking of"
_______________________________________________
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users

Reply via email to