GithubHelp home page GithubHelp logo

cramhead / velocity Goto Github PK

View Code? Open in Web Editor NEW

This project forked from meteor-velocity/velocity

0.0 2.0 0.0 713 KB

A reactive test-runner for Meteor

Home Page: http://velocity.meteor.com

License: MIT License

JavaScript 76.62% CSS 23.38%

velocity's Introduction

Velocity

Test runner (and community) for Meteor apps. Under heavy development.

What is Velocity?

Head over to the official homepage

Find out more by watching the Intro to Velocity talk that Robert, Sam, and Mike did at the June 2014 Meteor Devshop!

Read more in the free chapter on Velocity in The Meteor Testing Manual

Getting Started

The Velocity package itself is not something that you include, rather you use Velocity-compatible framework.

To see frameworks in action, have a look at the velocity-examples repository.

Troubleshooting

Sometimes things break and its useful to get more debugging info. Most of the test frameworks support some kind of debugging environment variable flag. You can usually see a lot more details about what's happening if you run your app with this command:

$ DEBUG=1 JASMINE_DEBUG=1 VELOCITY_DEBUG=1 VELOCITY_DEBUG_MIRROR=1 meteor

Reporting bugs

Please report bugs directly on the issues of the framework(s) you are using. Framework authors will then post issues to the core if they are core issues.

##Velocity Compatible Packages

Frameworks

Below is a list of the currently available frameworks.

####Fully Integrated

These frameworks have an example in the velocity-examples repository. They also include a set of sample tests that the framework can add directly to the reporter when you first install the framework.

  • sanjo:jasmine - Write client and server unit and integration tests with Jasmine.
  • mike:mocha - A Velocity version of mocha-web. Runs mocha tests in the Meteor context which is great for integration testing.
  • xolvio:cucumber - Use Gherkin-syntax cucumber to test your app. Integrated nicely with meteor-webdriver

####Partially Integrated

These frameworks are very usable, and they are placed under this section as they currently don't have an example app and do not offer a sample-test button in the reporter.

Reporters

Reporters display test results.

  • velocity:html-reporter - Adds an overlay to your app indicating test success/failure (green/red dot in top right). Click dot for test details. meteor add velocity:html-reporter

Mirrors

Mirrors are used by test frameworks to run tests within. Tests are typically destructive and as such require a different database. Mirrors run a parallel version of your app with a different database as not to intrude on the main development workflow.

  • node-soft-mirror - This mirror offers an extremely fast startup time. It creates a mirror using a node form from within the running meteor process.

Other

  • xolvio:webdriver - Adds webdriver.io to any test framework for UI testing. Uses PhantomJS in GhostDriver mode for ultra-fast UI testing

Test Framework Authors

We would love to add your framework to the list! Take a look at how some of these interface with velocity and let us know about your framework on the velocity-core google group.

Please see the velocity-wiki for basic instructions on making your test framework work with Velocity.

Also, be sure to check out the documentation for the public API. You can view them in the browser by cloning this repo and then running: open docs/classes/Velocity.html

A few notes on being velocity-compatible:

Register testing framework to Velocity

Use Velocity.registerTestingFramework(frameworkName, options) to register your package as testing framework. You can find a description of the expected arguments in the docs.

Sample Tests

Please put some sample tests in a directory named sample-tests at the root of your package. These will be used by the velocity-quick-start package and also allows users to click a button in the html-reporter to have them added to their apps.

Debug output

Please include a way to get more detailed info about your frameworks' test runs.

One way that we've done it is by having an environment flag that the user can set. Feel free to use VELOCITY_DEBUG if you'd like.

For example, you could write your logging like this:

var DEBUG = process.env.VELOCITY_DEBUG;
DEBUG && console.log('[my-framework] helpful debugging info', someVar)

Writing a new Mirror Package

See instructions here

For velocity:core maintainers

Developing with a local version of velocity:core

  1. Clone https://github.com/meteor-velocity/velocity-examples.git
  2. Create a symlink to your local velocity:core package:
cd velocity-examples/leaderboard-jasmine
mkdir packages
cd packages
# Replace ~/velocity with your path 
ln -s ~/velocity velocity:core
  1. Start the velocity example app. It will use your local velocity:core version.
cd ..
meteor

Publishing to Meteor Package System

  1. Make code changes
  2. Commit changes
  3. Update History.md with summary of changes
  4. Bump version numbers in package.js, History.md and yuidoc.json
  5. Execute yuidoc command from velocity root path
  6. Commit changes
  7. meteor publish
  8. Tag last commit with the new version X.X.X
  9. Push to github. Also push the new tag! (git push --tags)

We have to publish velocity:core for the different architectures (Mac OS, 64-bit Linux and 32-bit Linux). This is how it is done:

# Publish new version
meteor publish

# Open Mac build machine
meteor admine get-machine os.osx.x86_64
# Build on the machine
meteor publish-for-arch velocity:core@<VERSION>
# Login
# Exit
exit

# Open Linux build machine
meteor admine get-machine os.linux.x86_64
# Build on the machine (this will build a version for 64-bit and 32-bit Linux)
meteor publish-for-arch velocity:core@<VERSION>
# Login
# Exit
exit

The build for your own architecture can also be done on the own machine. But the publish-for-arch command for your architecture is still required.

Meteor Method Naming Convention

We have two naming schemas:

  1. When the method does something with a resource type: velocity/<RESOURCE_NAME>/<ACTION>
  2. When the method isn't specific to a resource type: velocity/<ACTION>

All parts are camelCase and start with a lowercase letter.

##Contributors

We are collaborating with an all-star team on unifying the Meteor testing landscape:

Please join our discussions at the velocity-core google group.

Roadmap

https://trello.com/b/VCmaj73b/velocity-project

velocity's People

Contributors

alanning avatar aldeed avatar anthonymayer avatar aramk avatar awatson1978 avatar erkkaha avatar hexsprite avatar orangewise avatar queso avatar rdickert avatar rissem avatar rjobanp avatar samhatoum avatar sanjosolutions avatar xdissent avatar

Watchers

 avatar  avatar

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.