{
  "name": "tap",
  "version": "0.4.11",
  "author": {
    "name": "Isaac Z. Schlueter",
    "email": "i@izs.me",
    "url": "http://blog.izs.me"
  },
  "description": "A Test-Anything-Protocol library",
  "bin": {
    "tap": "bin/tap.js"
  },
  "main": "lib/main.js",
  "engines": {
    "node": ">=0.8"
  },
  "dependencies": {
    "buffer-equal": "~0.0.0",
    "deep-equal": "~0.0.0",
    "difflet": "~0.2.0",
    "glob": "~3.2.1",
    "inherits": "*",
    "mkdirp": "~0.3",
    "nopt": "~2",
    "runforcover": "~0.0.2",
    "slide": "*",
    "yamlish": "*"
  },
  "keywords": [
    "assert",
    "test",
    "tap"
  ],
  "contributors": [
    {
      "name": "Isaac Z. Schlueter",
      "email": "i@izs.me",
      "url": "http://blog.izs.me"
    },
    {
      "name": "baudehlo",
      "email": "helpme+github@gmail.com"
    }
  ],
  "license": {
    "type": "MIT",
    "url": "https://github.com/isaacs/node-tap/raw/master/LICENSE"
  },
  "repository": {
    "type": "git",
    "url": "git://github.com/isaacs/node-tap.git"
  },
  "scripts": {
    "test": "bin/tap.js test/*.js"
  },
  "devDependencies": {},
  "readme": "This is a mix-and-match set of utilities that you can use to write test\nharnesses and frameworks that communicate with one another using the\nTest Anything Protocol.\n\nIf you don't yet know what TAP is, [you better ask\nsomebody](http://testanything.org/).\n\nDefault Usage:\n\n1. Make a directory.  Maybe call it 'test'.  That'd be nice and obvious.\n2. Put a bunch of test scripts in there.  If they're node programs, then\n   they should be \".js\".  Anything else is assumed to be some kind of shell\n   script, which should have a shebang line.\n3. `npm install tap`\n4. Update package.json scripts.test to include `tap ./test` [example\n   gist](https://gist.github.com/4469613)\n5. `npm test`\n\nThe output will be TAP-compliant.\n\nFor extra special bonus points, you can do something like this:\n\n    var test = require(\"tap\").test\n    test(\"make sure the thingie is a thing\", function (t) {\n      t.equal(thingie, \"thing\", \"thingie should be thing\")\n      t.deepEqual(array, [\"foo\", \"bar\"], \"array has foo and bar elements\")\n      t.deepEqual(object, {foo: 42}, \"object has foo property\")\n      t.type(thingie, \"string\", \"type of thingie is string\")\n      t.ok(true, \"this is always true\")\n      t.notOk(false, \"this is never true\")\n      t.test(\"a child test\", function (t) {\n        t.equal(this, superEasy, \"right!?\")\n        t.similar(7, 2, \"ever notice 7 is kinda like 2?\", {todo: true})\n        t.test(\"so skippable\", {skip: true}, function (t) {\n          t.plan(1) // only one test in this block\n          t.ok(true, \"but when the flag changes, it'll pass\")\n          // no need to end, since we had a plan.\n        })\n        t.end()\n      })\n      t.ok(99, \"can also skip individual assertions\", {skip: true})\n      // end lets it know it's over.\n      t.end()\n    })\n    test(\"another one\", function (t) {\n      t.plan(1)\n      t.ok(true, \"It's ok to plan, and also end.  Watch.\")\n      t.end() // but it must match the plan!\n    })\n\nNode-tap is actually a collection of several modules, any of which may be\nmixed and matched however you please.\n\nIf you don't like this test framework, and think you can do much much\nbetter, *I strongly encourage you to do so!*  If you use this library,\nhowever, at least to output TAP-compliant results when `process.env.TAP`\nis set, then the data coming out of your framework will be much more\nconsumable by machines.\n\nYou can also use this to build programs that *consume* the TAP data, so\nthis is very useful for CI systems and such.\n\n* tap-assert: A collection of assert functions that return TAP result\n  objects.\n* tap-consumer: A stream interface for consuming TAP data.\n* tap-producer: A class that produces a TAP stream by taking in result\n  objects.\n* tap-results: A class for keeping track of TAP result objects as they\n  pass by, counting up skips, passes, fails, and so on.\n* tap-runner: A program that runs through a directory running all the\n  tests in it.  (Tests which may or may not be TAP-outputting tests.  But\n  it's better if they are.)\n* tap-test: A class for actually running tests.\n* tap-harness: A class that runs tests.  (Tests are also Harnesses,\n  which is how sub-tests run.)\n* tap-global-harness: A default harness that provides the top-level\n  support for running TAP tests.\n\n## Experimental Code Coverage with runforcover & bunker:\n\n```\nTAP_COV=1 tap ./test [--cover=./lib,foo.js] [--coverage-dir=./coverage]\n```\n\nThis feature is experimental, and will most likely change somewhat\nbefore being finalized.  Feedback welcome.\n",
  "readmeFilename": "README.md",
  "bugs": {
    "url": "https://github.com/isaacs/node-tap/issues"
  },
  "homepage": "https://github.com/isaacs/node-tap",
  "bundleDependencies": [
    "inherits",
    "tap-consumer",
    "yamlish"
  ],
  "_id": "tap@0.4.11",
  "_shasum": "458f386816927287da2d1ff996e3541750b0bf29",
  "_from": "tap@>=0.2.3",
  "_resolved": "https://registry.npmjs.org/tap/-/tap-0.4.11.tgz"
}
