npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

example-runner

v0.2.0

Published

Runner for example files, usually tests.

Downloads

319

Readme

example-runner

Run example files with assertions. example-runner can be used as a very basic test runner, optionally with a source transform function. This makes it suitable for testing JavaScript-to-JavaScript compilers such as es6-class, where it is used.

Install

$ npm install [--save-dev] example-runner

Usage

example-runner has two exported functions: run and runCLI. Most of the time you'll probably want to use runCLI which prints to stdout and exits with the appropriate status code. If you need to customize the output or exit behavior of example-runner, such as to fit it into another tool, you can use run.

runCLI(files, options)

With no arguments, runCLI will run test/examples/*.js.

require('example-runner').runCLI();

You can run specific files if you want:

require('example-runner').runCLI(['a.js', 'b.js']);

Provide the transform option if you want to modify your examples before running, such as with sweet.js:

require('example-runner').runCLI({
  transform: function(source, testName, filename, options) {
    return sweetjs.compile(source);
  }
});

The arguments given to transform are:

  • source: A string with the source of the example file.
  • testName: The base name of the example file, sans .js suffix.
  • filename: The path to the example file.
  • options: Options parsed from comments in the source of the example file. This is useful if how you transform the source is different per file and you need a way to configure it. For example, /* config a:b, log:true */ in the source file will create options like so: { config: { a: "b", log: true } }.

If you need to pass data to your example files, use the context option.

require('example-runner').runCLI({
  context: { mydata: [1, 2], mylib: require('mylib') }
});

Note that there are some default context properties:

  • assert: This is the node assert library. At least one assertion must be made for an example file to be considered successful. You can disable this behavior by adding /* example-runner assert:false */ at the top of your example file.
  • __options: This is the same options object passed to transform (see above).

run(files, options)

Like runCLI(), run() takes files and options. Unlike runCLI() it returns an EventEmitter that emits three events:

  • pass(testName): called when an example file passes
  • fail(testName, error): called when an example file fails, along with the error thrown
  • done(passed, failed): called when all tests have run, along with the names of the passed and failed examples