Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Tinytest In App Meteor Package

This package has been made obsolete by a technique that requires no extra packages.

Use Tinytest to test your Meteor app, just like you would a package.

Does not use Velocity so the tests do NOT run in a mirror. You must clean up any data you create. If you would like to use Velocity with Tinytest in your app, see my numtel:velocity-tinytest package.


The tinytest package is also required. Install both using this command:

$ meteor add tinytest numtel:tinytest-in-app

Quick start

  1. Add a test to your application in any file

    Tinytest.add('test title', function(test){
      test.equal(true, true);
  2. Open the Javascript console in your browser, execute runTinyTest()



Run your tests on the server and in a PhantomJS client then output the results to the console. PhantomJS loads the application on the origin of the URL you are browsing from. For example, if your browser is at http://localhost:3000/posts/someid, PhantomJS will open http://localhost:3000 and execute the tests.


Key Description
pathPrefix Specify array of strings to narrow the range of tests to execute. For example, if your test was titled FirstPart - some test, pass ['tinytest', 'FirstPart'] to only run the tests that begin with FirstPart - .

Tinytest documentation

Since there is no official documentation for Tinytest, it may be helpful to have some here.

Test titles can be any string. Using a separator of " - " will allow running a subset of tests using the pathPrefix option.

Test Syntax:

// Synchronous test
Tinytest.add('test title', function(test){
  test.equal(true, true);

// Asynchronous test
Tinytest.addAsync('async test title', function(test, onComplete){
    test.equal(true, true);
  }, 1000);


test.isFalse(v, msg) // if (!v)
test.isTrue(v, msg) // if(v)
test.equal(actual, expected, message)
test.notEqual(actual, expected, message)
test.length(obj, len, msg)
test.include(s, v) // s = string or object
test.isNaN(v, msg)
test.isUndefined(v, msg)
test.isNotNull(v, msg)
test.isNull(v, msg)

// expected can be:
//  undefined: accept any exception.
//  string: pass if the string is a substring of the exception message.
//  regexp: pass if the exception message passes the regexp.
//  function: call the function as a predicate with the exception.
test.throws(func, expected)

test.instanceOf(obj, klass)

test.runId() // Unique id for this test run

// Call this to fail the test with an exception. Use this to record
// exceptions that occur inside asynchronous callbacks in tests.
// It should only be used with asynchronous tests, and if you call
// this function, you should make sure that (1) the test doesn't
// call its callback (onComplete function); (2) the test function
// doesn't directly raise an exception.


Travis CI integration

Create a .travis.yml file in your app repository with the following contents:

language: node_js
- "0.10"
- "curl -L | /bin/sh"
- "meteor update"
- "wget"
- "wget"
# Optionally, arguments can be added to Meteor startup
# ex: node .startTest.js --port 3500
script: "node .startTest.js"

Command line interface

The Travis CI integration can be used to run Tinytest from your local command line as well.

Add these two scripts to your application: (Dot files to prevent Meteor from including them.)

$ wget
$ wget

To run the tests from your application directory:

$ node .startTest.js

# Or specify any parameters to pass through when starting Meteor
$ node .startTest.js --port 3500


  • Use nodejs command on Debian, Ubuntu systems.
  • Only one instance of Meteor may run at a time in a directory. If your app is running, you should use the in-browser interface instead.

Related packages

Run tests

$ git clone
$ cd tinytest-in-app
$ meteor test-packages ./

Open your browser to http://localhost:3000/

Open the Javascript console and run the following command:


Not all the tests are expected to pass. The tests must be manually verified by checking the browser output against the console output.




Use Tinytest to test a Meteor application




No releases published


No packages published