Code Monkey home page Code Monkey logo

storyteller's Introduction

Storyteller - a tool for crafting executable specifications.

storyteller logo

Quickstart

Join the chat at https://gitter.im/storyteller/Storyteller

After doing a new git clone of the code, run npm run build at the command line from the root directory.

Getting started with the code

UPDATE: Storyteller seems to work just fine with io.js as well, but please tell us if you encounter any issues developing with io.js instead of node.js.

The Storyteller code consists of two parts, a web based client written in Javascript and the actual specification engine and a self-contained web host written in C#. In order to work with the Storyteller code, you'll need to have both an installation of Node.js v12 with npm and .Net 4.5 on your box. To start working with the code, first run the build script with rake, or if you'd rather not use a Ruby-based build, the build.cmd script will set up both the Node.js and .Net dependencies and run most of the unit tests. Running these commands will:

  1. Install all the necessary npm packages for the client side
  2. Build the bundled javascript products that need to be embedded into the .Net code
  3. Runs all the Javascript tests
  4. Installs the necessary Nuget dependencies for the .Net code
  5. Builds and tests the .Net code

Working on the Javascript Code

The client code is built with React.js as the view technology and Webpack as the client build tool. The client side automation is done through npm at the command line:

  • npm run build-client - precompile the JSX files, do ES6 to ES5 transformations, and bundle the files
  • npm run watch - same as above, but watches for changes and builds automatically
  • npm run test - runs all the Javascript tests
  • npm run harness - hosts the client code with a stubbed in backend at http://localhost:3000 using the React hot loader for rapid UI work
  • npm run test-mocha - run the unit tests against the /lib folder
  • npm run tdd-mocha - run the unit tests against the /lib folder in watched mode
  • npm run test-karma - run the karma tests against the JSX components
  • npm run tdd-karma - run the karma tests against the JSX components in watched mode
  • npm run smoke-test - runs a series of karma tests against all the sample specifications

and as stated earlier, npm run build builds and tests both the client side Javascript and server side .Net at one time.

The client side code is in the /client folder. The javascript code is organized as follows:

  • /components - All the React.js components as JSX files
  • /component-tests - Karma tests against the React.js components
  • /lib - All the other Javascript code. Data stores, controllers, presenters, domain model objects. Storyteller is roughly using a Flux style architecture using Postal.js as an event aggregator
  • /lib-tests - Mocha tests against the lib code

Working on the .Net Code

The source code is in the /src folder. For the moment, we're using Visual Studio.Net and the solution file is at src/Storyteller.sln. As DNX matures we will probably move to eliminate the .sln and .csproj files in the code repository. You will need to run the command line build at least once before opening the C# code in Visual Studio.

From the command line, you can run the rake test command to run all the .Net unit tests.

The .Net code uses Paket for Nuget dependency management and Fixie for unit testing. At this time we're emulating NUnit behavior, but this is expected to change to Fixie idioms at a later time.

UPDATE: Storyteller will transition to xUnit.Net for unit testing at some point prior to starting work on CoreCLR & DNX support.

storyteller's People

Contributors

aabenoja avatar alistair avatar apboyle avatar craig-jennings avatar danjacka avatar gitter-badger avatar hougasian avatar izep avatar jamesmanning avatar jarrodj83 avatar jawn avatar jeremydmiller avatar jmarnold avatar joemcbride avatar jokokko avatar jordanzaerr avatar jrios avatar kedde avatar kevm avatar khalidabuhakmeh avatar kharlamov avatar lhaussknecht avatar mtscout6 avatar mysticmind avatar ryanhauert avatar seankilleen avatar smerrell avatar stevematney avatar steveruble avatar tdawgy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

storyteller's Issues

ITestObserver needs to know about retries for TC

The TeamCityListener work just needs to be flat out redone. The test observer infrastructure needs to know about the semantics of retries so that the listener can be a lot dumber and report when it's told to.

This is also a place holder to bring back the TC listener since it's been removed until we get to this.

Add an exception such that when thrown stops the storyteller test

There are many times that we know that if a particular step fails then the rest of the test is doomed. Having a special exception that will stop the test and prevent the remainder of the grammars from running, would improve test run time and developer productivity.

Memoize the selection of equivalence checker in cell

Use the EquivalenceChecker, but have the selections built into the Cell construction

Maybe it would be convenient to combine EquivalenceChecker into Conversions so you can pass it all down at the same time

Application defined selection lists

This has been a request over the years. Allow for selection lists that are built at runtime by the system under test instead of wired into Fixture or grammars. So you could do crazy things like build it from db tables or some such.

Write Intro Documentation on home page.

hi all! @jeremydmiller pointed me here from the old site. I would like to +1 this post below. Is there a blog or anything that shows why you like StoryTeller, why you wrote it, and perhaps compares it to RSpec, which I love?
thank you!

https://groups.google.com/forum/#!topic/storyteller-dotnet-users/pOmk1b3JfyA
StoryTeller Documentation - Google Groups
StoryTeller Users ›
StoryTeller Documentation
1 post by 1 author
Fábio Luiz Esperati Pagoti
8/11/12
Hello guys,
I would like to give a try to StoryTeller but I have no idea what is, how to install, how to use, where I can find information etc. (Nothing apart from this group).
Is there any documentation available?

I strongly suggest to update the Read Me file inside git with useful information about the project.

I'm working with testing and I'm seeking some great open source ideas. StoryTeller gave me a bad impression for it lack of information but I'm willing to contribute if I like the idea.

Zip up the storyteller results

This would make the artifact usage a lot easier in TeamCity. There's a way to define system-wide report tabs and reference zip files (and files inside of them).

Would let us define a report tab like:
StoryTeller | storyteller.zip!Storyteller.html

...instead of setting things up per-project.

"new" command to template a new Storyteller testing project

Use FubuCsProjFile templating to do it

Dependent upon the command line changes

  • Add ST2 nuget reference
  • Add the stupid ST2 project.xml, but we'll make that go away later
  • Add a new ISystem that inherits from BasicSystem for now
  • Add a Fixtures folder
  • Add a Tests folder
  • Add rake task to execute the ST tests for CI
  • Add rake task to open the ST editor
  • Make an all new command to do this.

fubu storyteller [Original Project] --name [name] --system-name [system-name]

Imported from FubuMvcArchive/fubu#34

Auto-find the ISystem

If the ISystem is not specified -->

1.) If there is only one concrete ISystem w/ a public ctor, use that.
2.) If there is more than one, look for the only one in an assembly matching the folder name
3.) If there is still more than one, use NulloSystem

Streamline the Project model

  • Make the binary folder and test folders be opinionated w/ zero configuration
  • Don't require the system. Use NulloSystem if absolutely nothing, use the one system if there's only one in the AppDomain
  • Get the test template into just a text file and out of the project model

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.