tapjs

Test Anything Protocol tools for node

OTHER License

Downloads
21.9M
Stars
2.3K
Committers
118

@tapjs

Workspace for node-tap development.

Dev Commands

Do this at least once to get everything set up and ready to go:

npm run bootstrap

(Note: npm install will not work until you do this, because the generated TypeScript eats its own tail.)


Build the test class (required after any plugin or core changes):

npm run build

Any other builds:

npm run prepare -w src/{whatever}

After adding or removing workspaces:

npm i

Run all tests in all workspaces:

npm test

Run all tests, saving snapshots:

npm run snap

Build and serve docs:

npm start

Contents

  • tap The
    main entry point module, which sets up the root test runner and
    exposes an alias to the cli runner.
  • tap-parser
    The module that parses TAP
  • @tapjs/core
    Most of the basic moving parts of tap
  • tap-yaml
    Thin wrapper around YAML and
    yaml-types for
    consistent handling of JavaScript values in YAML diagnostics.
  • @tapjs/test
    The plugin-ified Test class.
  • @tapjs/config
    Handling config files, command line interface parsing,
    environment variables, and validation
  • @tapjs/run
    The command line runner
  • tcompare
    The library that does comparison and object formatting (use
    heavily by @tapjs/asserts methods).
  • @tapjs/stack
    Library for capturing stack frames, the descendant of
    stack-utils.
  • @tapjs/processinfo
    The library that tracks process information and code coverage
    (hosted outside the monorepo, because it can't be tested by a
    version of tap that uses itself without bootstrap paradoxes)
  • default plugins:
  • optional plugins:
  • other stuff:
    • npm-init-template
      A library for more easily creating npm init packages. This
      will move out as soon as this version of tap is published.
    • @tapjs/create-plugin
      An npm init library facilitating npm init @tapjs/plugin
      to create new plugins.

Bootstrap and skipLibCheck

Run npm run bootstrap to build the @tapjs/test module with the default set of plugins, so that the other libraries can build properly. (This only has to be done once, unless the build script or set of default plugins are changed, of course.)

Because there's a bootstrapping cycle between @tapjs/core, @tapjs/test, and all of the plugins, they MUST use skipLibCheck: true in their tsconfigs. It should not be used in other packages.