I’d like to announce a new open source tool that I’ve started called “StoryTeller” that is being hosted on Tigris at http://storyteller.tigris.org. There isn’t any content, but the code is up in Subversion.
From the website:
StoryTeller is a new tool for efficient creation and management of automated testing of .Net code with the NFit/FitNesse engine. StoryTeller is specifically created to support an Acceptance Test Driven Development strategy. All existing .Net FitNesse and NFit tests will run under StoryTeller. Features will include editing, tagging, and integration with source control, CruiseControl.Net, NAnt and/or MSBuild, and support for application versioning.
The name “StoryTeller” is meant to convey a sense of telling the story of an application by defining the systems requirements (the user stories) in executable FIT tests. My basic goal is to enable Acceptance Test Driven Development by simplifying the mechanical work of designing FitNesse fixture classes and tests. I definitely want something that makes it as easy as possible for testers to use the Fixture classes we create and for us developers to run their tests at will. StoryTeller will consist of a .Net 2.0 WinForms application and class libraries to edit and run FIT style tests. It’s very early in its development, but I wanted to announce it early to get some feedback about the feature list and gauge the interest level of the community.
Why move beyond FitNesse?
- It lacks integration with source control
- Little bit difficult to integrate with CruiseControl.Net
- The .Net support has never been up to par with Java
- There’s simply an opportunity to do it better
Proposed Feature List
- Human editable test files
- Run tests with the FitNesse/NFit/FitLibrary.Net engine (duh)
- Organize tests into a hierarchy of Suite’s
- Define “System Under Test’s”. The definition of a SystemUnderTest would include:
- Source control persistence for the test and suite files within StoryTeller (I’m going to steal outrageously from CC.Net on this)
- Being able to deploy the latest, or versioned, build of the System Under Test with a NAnt or MSBuild script on command
- “Component Analyzers” that can build a report in the tool listing the deployed components and versions of those components
- “Local” systems for developers to run the tests on their workstations and “Remote” systems for testers to edit and execute tests against a remote installation
- Categorize and run tests by tags. Tagging could be used to categorize tests by “Regression” or “Acceptance”, by user story/feature, or by test owner
- Create “play lists” of tests
- Setup and Teardown inclusions
- Sharing test fragments
- Easy copying of tests
- Create test templates
- WinForms tool to edit tests with guided “Intellisense” like forms for BoundFixture’s, FlowFixture’s, and an adhoc mode
- Run the tests inside an NUnit GUI-like tool
- Wizard to design Fixture grammars to enable consistent test writing well in advance of coding
- Create reports of test runs that include the results, the version of the tests, and the versions of the installed components
- Integration with NAnt or MSBuild and CruiseControl.Net
- Run the tests from within Visual Studio.Net
- In the distant, misty future I’d like to include some integration for web application testing with Selenium and/or driving WinForms testing with NUnitForms
- Does the world need this? No, not really, but it’d be awfully nice. I’ve been wanting something like this for about a year.
- Why .Net? I wanted, and started, to do this with a Ruby on Rails backend and AJAX frontend but didn’t get very far. The choice of technology is completely based on the fact that I’m doing WinForms development for the first time in two years and I could use some significant practice;)
- When? I’m planning on being able to use the non-UI pieces soon. The bare bones UI will follow in a couple months. Part of the goal behind making this announcement is to goad myself into getting it done.
- Can I help? Gladly. Send me an email.
Got suggestions or questions? I’m all ears.