Namespace advice for testing module and runner.

Do you have a question? Post it now! No Registration Necessary.  Now with pictures!

Hi all,

I've been working on a testing framework which aims to bring BDD to
Perl (see for
more info on BDD). This is still a work in progress (you can follow
along and/or contribute at )
but it's nearing the point where I'd like to start to nail down the
correct namespace(s) for eventual uploading to CPAN.

The project is called 'Courgette' (it's loosely based on 'Cucumber',
the equivalent project for Ruby) and everything currently lives in a
single namespace. However I can see two major components to the
project, one is the framework for reading in feature stories &
scenarios and the other is the runner to make it easily usable from
the command-line. Here's what I've currently got:

  Courgette - Module encapsulating loading of features and steps.
  Courgette::Display - Parent class for display modules.
  Courgette::Display::PlainConsole - Display module for plain-text to
the console.
  Courgette::Feature - Encapsulates a feature and their scenarios.
  Courgette::Step - Class for code refs that implement steps in
  Courgette::World - Scope that steps run in.

It would probably make sense to rename the last three modules into the
Test namespace, I think:

  Courgette::Feature -> Test::Feature
  Courgette::Step -> Test::Feature::Step
  Courgette::World -> Test::Feature::World

Hopefully this would allow people to use features and steps written
for a project with a different runner. I'd appreciate hearing any
suggestions or advice people may have, regarding the namespace or even
other aspects ... design, implementation, etc.



Site Timeline