{"_id":"it","_rev":"3219495","name":"it","description":"A testing framework for node","dist-tags":{"latest":"1.1.1"},"maintainers":[{"name":"aheuermann","email":""},{"name":"damartin","email":"doug@dougamartin.com"},{"name":"dustinsmith1024","email":""}],"time":{"modified":"2024-03-21T07:21:22.000Z","created":"2012-03-13T19:13:07.058Z","1.1.1":"2016-01-27T19:37:27.993Z","1.1.0":"2015-12-31T17:58:02.470Z","1.0.1":"2015-12-21T15:46:08.568Z","1.0.0":"2015-12-15T18:28:00.639Z","0.2.7":"2013-06-20T05:22:34.918Z","0.2.6":"2013-04-17T22:41:23.956Z","0.2.4":"2013-04-13T16:00:41.948Z","0.2.3":"2013-04-04T17:55:44.601Z","0.2.2":"2013-02-28T16:43:56.560Z","0.2.1":"2013-01-22T08:27:42.559Z","0.2.0":"2013-01-21T19:48:06.073Z","0.1.1":"2013-01-16T17:50:13.669Z","0.1.0":"2013-01-12T22:58:48.295Z","0.0.5":"2012-09-10T18:01:13.627Z","0.0.4":"2012-09-03T19:04:18.241Z","0.0.3":"2012-07-13T22:33:53.193Z","0.0.2":"2012-06-05T17:27:20.572Z","0.0.1":"2012-03-13T19:13:07.058Z"},"users":{},"author":{"name":"Doug Martin","url":"http://blog.dougamartin.com"},"repository":{"type":"git","url":"git+ssh://git@github.com/doug-martin/it.git"},"versions":{"1.1.1":{"name":"it","description":"A testing framework for node","version":"1.1.1","keywords":["testing","test","async","function testing","bdd","unit","unit testing"],"repository":{"type":"git","url":"git+ssh://git@github.com/doug-martin/it.git"},"scripts":{"test":"./bin/it -r tap"},"dependencies":{"declare.js":"~0.0.3","extended":"~0.0.3","is-extended":"~0.0.3","string-extended":"~0.0.3","array-extended":"~0.0.3","date-extended":"~0.0.3","function-extended":"~0.0.3","object-extended":"~0.0.3","promise-extended":"~0.0.3","commander":"~1.1.1","glob":"~3.1.21","grunt":"~0.4.1"},"testling":{"files":"test/browserling.js","browsers":["ie/6..latest","chrome/20..latest","firefox/10..latest","safari/latest","opera/11.0..latest","iphone/6","ipad/6"]},"devDependencies":{"grunt-browserify":"~0.2.0","grunt-contrib-uglify":"~0.11.0","grunt-contrib-jshint":"~0.3.0","colors":"1.1.2","diff":"2.2.1"},"homepage":"http://doug-martin.github.com/it","author":{"name":"Doug Martin","url":"http://blog.dougamartin.com"},"main":"index.js","bin":{"it":"./bin/it"},"directories":{"lib":"lib"},"engines":{"node":">= 0.10.1"},"gitHead":"0f8036ef6495fbef9dec1111e7913bec1af7301d","bugs":{"url":"https://github.com/doug-martin/it/issues"},"_id":"it@1.1.1","_shasum":"d693afcd1f4330516b52b56a4c27ff8deb9e70d4","_from":".","_npmVersion":"3.5.3","_nodeVersion":"5.3.0","_npmUser":{"name":"aheuermann","email":"aheuermann@gmail.com"},"maintainers":[{"name":"aheuermann","email":""},{"name":"damartin","email":"doug@dougamartin.com"},{"name":"dustinsmith1024","email":""}],"dist":{"shasum":"d693afcd1f4330516b52b56a4c27ff8deb9e70d4","size":713906,"noattachment":false,"key":"/it/-/it-1.1.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/it/download/it-1.1.1.tgz"},"publish_time":1453923447993,"_hasShrinkwrap":false,"_cnpm_publish_time":1453923447993,"_cnpmcore_publish_time":"2021-12-16T11:26:27.548Z"},"1.1.0":{"name":"it","description":"A testing framework for node","version":"1.1.0","keywords":["testing","test","async","function testing","bdd","unit","unit testing"],"repository":{"type":"git","url":"git+ssh://git@github.com/doug-martin/it.git"},"scripts":{"test":"./bin/it -r tap"},"dependencies":{"declare.js":"~0.0.3","extended":"~0.0.3","is-extended":"~0.0.3","string-extended":"~0.0.3","array-extended":"~0.0.3","date-extended":"~0.0.3","function-extended":"~0.0.3","object-extended":"~0.0.3","promise-extended":"~0.0.3","commander":"~1.1.1","glob":"~3.1.21","grunt":"~0.4.1"},"testling":{"files":"test/browserling.js","browsers":["ie/6..latest","chrome/20..latest","firefox/10..latest","safari/latest","opera/11.0..latest","iphone/6","ipad/6"]},"devDependencies":{"grunt-browserify":"~0.2.0","grunt-contrib-uglify":"~0.11.0","grunt-contrib-jshint":"~0.3.0","colors":"1.1.2","diff":"2.2.1"},"homepage":"http://doug-martin.github.com/it","author":{"name":"Doug Martin","url":"http://blog.dougamartin.com"},"main":"index.js","bin":{"it":"./bin/it"},"directories":{"lib":"lib"},"engines":{"node":">= 0.10.1"},"gitHead":"cbb24859ed4bcb4e438470f31775409c752b029a","bugs":{"url":"https://github.com/doug-martin/it/issues"},"_id":"it@1.1.0","_shasum":"f6123fad9711b4cc604614b0e497d066142c8f18","_from":".","_npmVersion":"3.3.12","_nodeVersion":"5.3.0","_npmUser":{"name":"dustinsmith1024","email":"dds1024@gmail.com"},"dist":{"shasum":"f6123fad9711b4cc604614b0e497d066142c8f18","size":707560,"noattachment":false,"key":"/it/-/it-1.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/it/download/it-1.1.0.tgz"},"maintainers":[{"name":"aheuermann","email":""},{"name":"damartin","email":"doug@dougamartin.com"},{"name":"dustinsmith1024","email":""}],"publish_time":1451584682470,"_hasShrinkwrap":false,"_cnpm_publish_time":1451584682470,"_cnpmcore_publish_time":"2021-12-16T11:26:28.884Z"},"1.0.1":{"name":"it","description":"A testing framework for node","version":"1.0.1","keywords":["testing","test","async","function testing","bdd","unit","unit testing"],"repository":{"type":"git","url":"git@github.com:doug-martin/it.git"},"scripts":{"test":"./bin/it -r tap"},"dependencies":{"declare.js":"~0.0.3","extended":"~0.0.3","is-extended":"~0.0.3","string-extended":"~0.0.3","array-extended":"~0.0.3","date-extended":"~0.0.3","function-extended":"~0.0.3","object-extended":"~0.0.3","promise-extended":"~0.0.3","commander":"~1.1.1","glob":"~3.1.21","grunt":"~0.4.1"},"testling":{"files":"test/browserling.js","browsers":["ie/6..latest","chrome/20..latest","firefox/10..latest","safari/latest","opera/11.0..latest","iphone/6","ipad/6"]},"devDependencies":{"grunt-browserify":"~0.2.0","grunt-contrib-uglify":"~0.2.0","grunt-contrib-jshint":"~0.3.0","colors":"1.1.2","diff":"2.2.1"},"homepage":"http://doug-martin.github.com/it","author":{"name":"Doug Martin","url":"http://blog.dougamartin.com"},"main":"index.js","bin":{"it":"./bin/it"},"directories":{"lib":"lib"},"engines":{"node":">= 0.10.1"},"gitHead":"cae18104f03b0da4df3c9b6fe2a49db723047450","bugs":{"url":"https://github.com/doug-martin/it/issues"},"_id":"it@1.0.1","_shasum":"15e6d0f2a4965c8513e119333252b3766c7b454c","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"aheuermann","email":"aheuermann@gmail.com"},"maintainers":[{"name":"aheuermann","email":""},{"name":"damartin","email":"doug@dougamartin.com"},{"name":"dustinsmith1024","email":""}],"dist":{"shasum":"15e6d0f2a4965c8513e119333252b3766c7b454c","size":713505,"noattachment":false,"key":"/it/-/it-1.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/it/download/it-1.0.1.tgz"},"publish_time":1450712768568,"_hasShrinkwrap":false,"_cnpm_publish_time":1450712768568,"_cnpmcore_publish_time":"2021-12-16T11:26:32.105Z"},"1.0.0":{"name":"it","description":"A testing framework for node","version":"1.0.0","keywords":["testing","test","async","function testing","bdd","unit","unit testing"],"repository":{"type":"git","url":"git@github.com:doug-martin/it.git"},"scripts":{"test":"./bin/it -r tap"},"dependencies":{"declare.js":"~0.0.3","extended":"~0.0.3","is-extended":"~0.0.3","string-extended":"~0.0.3","array-extended":"~0.0.3","date-extended":"~0.0.3","function-extended":"~0.0.3","object-extended":"~0.0.3","promise-extended":"~0.0.3","commander":"~1.1.1","glob":"~3.1.21","grunt":"~0.4.1"},"testling":{"files":"test/browserling.js","browsers":["ie/6..latest","chrome/20..latest","firefox/10..latest","safari/latest","opera/11.0..latest","iphone/6","ipad/6"]},"devDependencies":{"grunt-browserify":"~0.2.0","grunt-contrib-uglify":"~0.2.0","grunt-contrib-jshint":"~0.3.0","colors":"1.1.2","diff":"2.2.1"},"homepage":"http://doug-martin.github.com/it","author":{"name":"Doug Martin","url":"http://blog.dougamartin.com"},"main":"index.js","bin":{"it":"./bin/it"},"directories":{"lib":"lib"},"engines":{"node":">= 0.10.1"},"gitHead":"41349bf339e898fb293d5b6f3547f244ff3e3ca5","bugs":{"url":"https://github.com/doug-martin/it/issues"},"_id":"it@1.0.0","_shasum":"cfdcc224f6fa4e8bfa225979382506655165327d","_from":".","_npmVersion":"1.4.28","_npmUser":{"name":"aheuermann","email":"aheuermann@gmail.com"},"maintainers":[{"name":"aheuermann","email":""},{"name":"damartin","email":"doug@dougamartin.com"},{"name":"dustinsmith1024","email":""}],"dist":{"shasum":"cfdcc224f6fa4e8bfa225979382506655165327d","size":711222,"noattachment":false,"key":"/it/-/it-1.0.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/it/download/it-1.0.0.tgz"},"publish_time":1450204080639,"_hasShrinkwrap":false,"_cnpm_publish_time":1450204080639,"_cnpmcore_publish_time":"2021-12-16T11:26:34.474Z"},"0.2.7":{"name":"it","description":"A testing framework for node","version":"0.2.7","keywords":["testing","test","async","function testing","bdd","unit","unit testing"],"repository":{"type":"git","url":"git@github.com:doug-martin/it.git"},"scripts":{"test":"./bin/it -r tap"},"dependencies":{"declare.js":"~0.0.3","extended":"~0.0.3","is-extended":"~0.0.3","string-extended":"~0.0.3","array-extended":"~0.0.3","date-extended":"~0.0.3","function-extended":"~0.0.3","object-extended":"~0.0.3","promise-extended":"~0.0.3","commander":"~1.1.1","glob":"~3.1.21","grunt":"~0.4.1"},"testling":{"files":"test/browserling.js","browsers":["ie/6..latest","chrome/20..latest","firefox/10..latest","safari/latest","opera/11.0..latest","iphone/6","ipad/6"]},"devDependencies":{"grunt-browserify":"~0.2.0","grunt-contrib-uglify":"~0.2.0","grunt-contrib-jshint":"~0.3.0"},"homepage":"http://doug-martin.github.com/it","author":{"name":"Doug Martin","url":"http://blog.dougamartin.com"},"main":"index.js","bin":{"it":"./bin/it"},"directories":{"lib":"lib"},"engines":{"node":">= 0.6.1"},"readmeFilename":"readme.md","bugs":{"url":"https://github.com/doug-martin/it/issues"},"_id":"it@0.2.7","dist":{"shasum":"9303710bc99ebb01f07151427039b23548356caa","size":735177,"noattachment":false,"key":"/it/-/it-0.2.7.tgz","tarball":"http://registry.cnpm.dingdandao.com/it/download/it-0.2.7.tgz"},"_from":".","_npmVersion":"1.2.25","_npmUser":{"name":"damartin","email":"doug@dougamartin.com"},"maintainers":[{"name":"aheuermann","email":""},{"name":"damartin","email":"doug@dougamartin.com"},{"name":"dustinsmith1024","email":""}],"publish_time":1371705754918,"_hasShrinkwrap":false,"_cnpm_publish_time":1371705754918,"_cnpmcore_publish_time":"2021-12-16T11:26:37.415Z"},"0.2.6":{"name":"it","description":"A testing framework for node","version":"0.2.6","keywords":["testing","test","async","function testing","bdd","unit","unit testing"],"repository":{"type":"git","url":"git@github.com:doug-martin/it.git"},"scripts":{"test":"./bin/it -r tap"},"dependencies":{"declare.js":"~0.0.3","extended":"~0.0.3","is-extended":"~0.0.3","string-extended":"~0.0.3","array-extended":"~0.0.3","date-extended":"~0.0.3","function-extended":"~0.0.3","object-extended":"~0.0.3","promise-extended":"~0.0.3","commander":"~1.1.1","glob":"~3.1.21","grunt":"~0.4.1"},"testling":{"files":"test/browserling.js","browsers":["ie/6..latest","chrome/20..latest","firefox/10..latest","safari/latest","opera/11.0..latest","iphone/6","ipad/6"]},"devDependencies":{"grunt-browserify":"~0.2.0","grunt-contrib-uglify":"~0.2.0","grunt-contrib-jshint":"~0.3.0"},"homepage":"http://doug-martin.github.com/it","author":{"name":"Doug Martin","url":"http://blog.dougamartin.com"},"main":"index.js","bin":{"it":"./bin/it"},"directories":{"lib":"lib"},"engines":{"node":">= 0.6.1"},"readmeFilename":"readme.md","_id":"it@0.2.6","dist":{"shasum":"74d40b375fd771fa6dbbfcff6acb0c1d28744b07","size":732934,"noattachment":false,"key":"/it/-/it-0.2.6.tgz","tarball":"http://registry.cnpm.dingdandao.com/it/download/it-0.2.6.tgz"},"_from":".","_npmVersion":"1.2.17","_npmUser":{"name":"damartin","email":"doug@dougamartin.com"},"maintainers":[{"name":"aheuermann","email":""},{"name":"damartin","email":"doug@dougamartin.com"},{"name":"dustinsmith1024","email":""}],"publish_time":1366238483956,"_hasShrinkwrap":false,"_cnpm_publish_time":1366238483956,"_cnpmcore_publish_time":"2021-12-16T11:26:39.213Z"},"0.2.4":{"name":"it","description":"A testing framework for node","version":"0.2.4","keywords":["testing","test","async","function testing","bdd","unit","unit testing"],"repository":{"type":"git","url":"git@github.com:doug-martin/it.git"},"scripts":{"test":"./bin/it -r tap"},"dependencies":{"declare.js":"~0.0.3","extended":"~0.0.3","is-extended":"~0.0.3","string-extended":"~0.0.3","array-extended":"~0.0.3","date-extended":"~0.0.3","function-extended":"~0.0.3","object-extended":"~0.0.3","promise-extended":"~0.0.3","commander":"~1.1.1","glob":"~3.1.21","grunt":"~0.4.1"},"testling":{"files":"test/browserling.js","browsers":["ie/6..latest","chrome/20..latest","firefox/10..latest","safari/latest","opera/11.0..latest","iphone/6","ipad/6"]},"devDependencies":{"grunt-browserify":"~0.2.0","grunt-contrib-uglify":"~0.2.0","grunt-contrib-jshint":"~0.3.0"},"homepage":"http://doug-martin.github.com/it","author":{"name":"Doug Martin","url":"http://blog.dougamartin.com"},"main":"index.js","bin":{"it":"./bin/it"},"directories":{"lib":"lib"},"engines":{"node":">= 0.6.1"},"readmeFilename":"readme.md","_id":"it@0.2.4","dist":{"shasum":"20fd9e35adc51fb24844f0278740d97ff1d54694","size":732243,"noattachment":false,"key":"/it/-/it-0.2.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/it/download/it-0.2.4.tgz"},"_from":".","_npmVersion":"1.2.17","_npmUser":{"name":"damartin","email":"doug@dougamartin.com"},"maintainers":[{"name":"aheuermann","email":""},{"name":"damartin","email":"doug@dougamartin.com"},{"name":"dustinsmith1024","email":""}],"publish_time":1365868841948,"_hasShrinkwrap":false,"_cnpm_publish_time":1365868841948,"_cnpmcore_publish_time":"2021-12-16T11:26:41.330Z"},"0.2.3":{"name":"it","description":"A testing framework for node","version":"0.2.3","keywords":["testing","test","async","function testing","bdd","unit","unit testing"],"repository":{"type":"git","url":"git@github.com:doug-martin/it.git"},"scripts":{"test":"./bin/it -r tap"},"dependencies":{"declare.js":"~0.0.3","extended":"~0.0.3","is-extended":"~0.0.3","string-extended":"~0.0.3","array-extended":"~0.0.3","date-extended":"~0.0.3","function-extended":"~0.0.3","object-extended":"~0.0.3","promise-extended":"~0.0.3","commander":"~1.1.1","glob":"~3.1.21","grunt":"~0.4.1"},"testling":{"files":"test/browserling.js","browsers":["ie/6..latest","chrome/20..latest","firefox/10..latest","safari/latest","opera/11.0..latest","iphone/6","ipad/6"]},"devDependencies":{"grunt-browserify":"~0.1.3","grunt-contrib-uglify":"~0.2.0","grunt-contrib-jshint":"~0.3.0"},"homepage":"http://doug-martin.github.com/it","author":{"name":"Doug Martin","url":"http://blog.dougamartin.com"},"main":"index.js","bin":{"it":"./bin/it"},"directories":{"lib":"lib"},"engines":{"node":">= 0.6.1"},"readmeFilename":"readme.md","_id":"it@0.2.3","dist":{"shasum":"ea49de10fd271fcd15480fb6815e2909cee01693","size":600296,"noattachment":false,"key":"/it/-/it-0.2.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/it/download/it-0.2.3.tgz"},"_from":".","_npmVersion":"1.2.17","_npmUser":{"name":"damartin","email":"doug@dougamartin.com"},"maintainers":[{"name":"aheuermann","email":""},{"name":"damartin","email":"doug@dougamartin.com"},{"name":"dustinsmith1024","email":""}],"publish_time":1365098144601,"_hasShrinkwrap":false,"_cnpm_publish_time":1365098144601,"_cnpmcore_publish_time":"2021-12-16T11:26:43.185Z"},"0.2.2":{"name":"it","description":"A testing framework for node","version":"0.2.2","keywords":["testing","test","async","function testing","bdd","unit","unit testing"],"repository":{"type":"git","url":"git@github.com:doug-martin/it.git"},"scripts":{"test":"./bin/it -r tap"},"dependencies":{"declare.js":"~0.0.3","extended":"~0.0.3","is-extended":"~0.0.3","string-extended":"~0.0.3","array-extended":"~0.0.3","date-extended":"~0.0.3","function-extended":"~0.0.3","object-extended":"~0.0.3","promise-extended":"~0.0.3","commander":"~1.1.1","glob-whatev":"~0.1.8"},"testling":{"files":"test/browserling.js","browsers":["ie/6..latest","chrome/20..latest","firefox/10..latest","safari/latest","opera/11.0..latest","iphone/6","ipad/6"]},"devDependencies":{"grunt-browserify":"~0.1.2"},"homepage":"http://doug-martin.github.com/it","author":{"name":"Doug Martin","url":"http://blog.dougamartin.com"},"main":"index.js","bin":{"it":"./bin/it"},"directories":{"lib":"lib"},"engines":{"node":">= 0.6.1"},"readmeFilename":"readme.md","_id":"it@0.2.2","dist":{"shasum":"f7ffced90d673453a055318e5e8a7f667033ef5c","size":678471,"noattachment":false,"key":"/it/-/it-0.2.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/it/download/it-0.2.2.tgz"},"_from":".","_npmVersion":"1.2.2","_npmUser":{"name":"damartin","email":"doug@dougamartin.com"},"maintainers":[{"name":"aheuermann","email":""},{"name":"damartin","email":"doug@dougamartin.com"},{"name":"dustinsmith1024","email":""}],"publish_time":1362069836560,"_hasShrinkwrap":false,"_cnpm_publish_time":1362069836560,"_cnpmcore_publish_time":"2021-12-16T11:26:45.248Z"},"0.2.1":{"name":"it","description":"A testing framework for node","version":"0.2.1","keywords":["testing","test","async","function testing","bdd","unit","unit testing"],"repository":{"type":"git","url":"git@github.com:doug-martin/it.git"},"scripts":{"test":"./bin/it -r tap"},"dependencies":{"declare.js":"0.0.3","extended":"~0.0.3","is-extended":"~0.0.3","string-extended":"~0.0.3","array-extended":"~0.0.3","date-extended":"~0.0.3","function-extended":"~0.0.3","object-extended":"~0.0.3","promise-extended":"~0.0.3","commander":"~1.1.1","glob-whatev":"0.1.8"},"testling":{"files":"test/browserling.js","browsers":{"ie":[6,7,8,9],"chrome":[4,23,"canary"],"firefox":[3,3.5,3.6,4,17,"nightly"],"opera":[10,10.5,11,11.5,11.6,12,"next"],"safari":["5.0.5",5.1]}},"devDependencies":{"grunt-browserify":"~0.1.2"},"homepage":"http://doug-martin.github.com/it","author":{"name":"Doug Martin","url":"http://blog.dougamartin.com"},"main":"index.js","bin":{"it":"./bin/it"},"directories":{"lib":"lib"},"engines":{"node":">= 0.6.1"},"readmeFilename":"readme.md","_id":"it@0.2.1","dist":{"shasum":"b23f661ad4ec80fe30670687b440a9e0b19b4ae1","size":679808,"noattachment":false,"key":"/it/-/it-0.2.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/it/download/it-0.2.1.tgz"},"_npmVersion":"1.2.0","_npmUser":{"name":"damartin","email":"doug@dougamartin.com"},"maintainers":[{"name":"aheuermann","email":""},{"name":"damartin","email":"doug@dougamartin.com"},{"name":"dustinsmith1024","email":""}],"publish_time":1358843262559,"_hasShrinkwrap":false,"_cnpm_publish_time":1358843262559,"_cnpmcore_publish_time":"2021-12-16T11:26:46.399Z"},"0.2.0":{"name":"it","description":"A testing framework for node","version":"0.2.0","keywords":["testing","test","async","function testing","bdd","unit","unit testing"],"repository":{"type":"git","url":"git@github.com:doug-martin/it.git"},"scripts":{"test":"./bin/it -r tap"},"dependencies":{"declare.js":"0.0.3","extended":"0.0.2","is-extended":"0.0.2","string-extended":"0.0.2","array-extended":"0.0.2","date-extended":"0.0.2","function-extended":"0.0.2","object-extended":"0.0.2","promise-extended":"0.0.2","commander":"~1.1.1","glob-whatev":"0.1.8"},"testling":{"files":"test/browserling.js","browsers":{"ie":[6,7,8,9],"chrome":[4,23,"canary"],"firefox":[3,3.5,3.6,4,17,"nightly"],"opera":[10,10.5,11,11.5,11.6,12,"next"],"safari":["5.0.5",5.1]}},"devDependencies":{"grunt-browserify":"~0.1.2"},"homepage":"http://doug-martin.github.com/it","author":{"name":"Doug Martin","url":"http://blog.dougamartin.com"},"main":"index.js","bin":{"it":"./bin/it"},"directories":{"lib":"lib"},"engines":{"node":">= 0.6.1"},"readmeFilename":"readme.md","_id":"it@0.2.0","dist":{"shasum":"308c4061a7463d9e700d08f3bfbc9ddea5fe4a4a","size":676704,"noattachment":false,"key":"/it/-/it-0.2.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/it/download/it-0.2.0.tgz"},"_npmVersion":"1.2.0","_npmUser":{"name":"damartin","email":"doug@dougamartin.com"},"maintainers":[{"name":"aheuermann","email":""},{"name":"damartin","email":"doug@dougamartin.com"},{"name":"dustinsmith1024","email":""}],"publish_time":1358797686073,"_hasShrinkwrap":false,"_cnpm_publish_time":1358797686073,"_cnpmcore_publish_time":"2021-12-16T11:26:48.365Z"},"0.1.1":{"name":"it","description":"A testing framework for node","version":"0.1.1","keywords":["testing","test","async","function testing","bdd","unit","unit testing"],"repository":{"type":"git","url":"git@github.com:doug-martin/it.git"},"dependencies":{"comb":"~0.2.0","commander":"~1.1.1"},"homepage":"http://doug-martin.github.com/it","author":{"name":"Doug Martin","url":"http://blog.dougamartin.com"},"main":"index.js","bin":{"it":"./bin/it"},"directories":{"lib":"lib"},"engines":{"node":">= 0.6.1"},"readmeFilename":"readme.md","_id":"it@0.1.1","dist":{"shasum":"10b1dfb9b1c91e1e0f89d915f36c9eb7364899fc","size":152271,"noattachment":false,"key":"/it/-/it-0.1.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/it/download/it-0.1.1.tgz"},"_npmVersion":"1.2.0","_npmUser":{"name":"damartin","email":"doug@dougamartin.com"},"maintainers":[{"name":"aheuermann","email":""},{"name":"damartin","email":"doug@dougamartin.com"},{"name":"dustinsmith1024","email":""}],"publish_time":1358358613669,"_hasShrinkwrap":false,"_cnpm_publish_time":1358358613669,"_cnpmcore_publish_time":"2021-12-16T11:26:49.049Z"},"0.1.0":{"name":"it","description":"A testing framework for node","version":"0.1.0","keywords":["testing","test","async","function testing","bdd","unit","unit testing"],"repository":{"type":"git","url":"git@github.com:doug-martin/it.git"},"dependencies":{"comb":"~0.2.0","commander":"~1.1.1"},"homepage":"http://doug-martin.github.com/it","author":{"name":"Doug Martin","url":"http://blog.dougamartin.com"},"main":"index.js","bin":{"it":"./bin/it"},"directories":{"lib":"lib"},"engines":{"node":">= 0.6.1"},"readmeFilename":"readme.md","_id":"it@0.1.0","dist":{"shasum":"c16e14c3025893d43d8516b3e2a75f06b02522e5","size":152211,"noattachment":false,"key":"/it/-/it-0.1.0.tgz","tarball":"http://registry.cnpm.dingdandao.com/it/download/it-0.1.0.tgz"},"_npmVersion":"1.2.0","_npmUser":{"name":"damartin","email":"doug@dougamartin.com"},"maintainers":[{"name":"aheuermann","email":""},{"name":"damartin","email":"doug@dougamartin.com"},{"name":"dustinsmith1024","email":""}],"publish_time":1358031528295,"_hasShrinkwrap":false,"_cnpm_publish_time":1358031528295,"_cnpmcore_publish_time":"2021-12-16T11:26:49.566Z"},"0.0.5":{"name":"it","description":"A testing framework for node","version":"0.0.5","keywords":["testing","test","async","function testing","bdd","unit","unit testing"],"repository":{"type":"git","url":"git@github.com:doug-martin/it.git"},"dependencies":{"comb":">=0.1.2","commander":">=0.5.1"},"homepage":"http://doug-martin.github.com/it","author":{"name":"Doug Martin","url":"http://blog.dougamartin.com"},"main":"index.js","bin":{"it":"./bin/it"},"directories":{"lib":"lib"},"engines":{"node":">= 0.6.1"},"_id":"it@0.0.5","dist":{"shasum":"f314f055b2cc52ce63c6e9fa26bfe54cfb415320","size":141440,"noattachment":false,"key":"/it/-/it-0.0.5.tgz","tarball":"http://registry.cnpm.dingdandao.com/it/download/it-0.0.5.tgz"},"_npmVersion":"1.1.59","_npmUser":{"name":"damartin","email":"doug.martin@pollenware.com"},"maintainers":[{"name":"aheuermann","email":""},{"name":"damartin","email":"doug@dougamartin.com"},{"name":"dustinsmith1024","email":""}],"publish_time":1347300073627,"_hasShrinkwrap":false,"_cnpm_publish_time":1347300073627,"_cnpmcore_publish_time":"2021-12-16T11:26:49.976Z"},"0.0.4":{"name":"it","description":"A testing framework for node","version":"0.0.4","keywords":["testing","test","async","function testing","bdd","unit","unit testing"],"repository":{"type":"git","url":"git@github.com:doug-martin/it.git"},"dependencies":{"comb":">=0.1.2","commander":">=0.5.1"},"homepage":"http://github.com/doug-martin/it","author":{"name":"Doug Martin","url":"http://blog.dougamartin.com"},"main":"index.js","bin":{"it":"./bin/it"},"directories":{"lib":"lib"},"engines":{"node":">= 0.6.1"},"_id":"it@0.0.4","dist":{"shasum":"a09f1cc91f0119c5543aadc5c550bb72cd26b53f","size":13831,"noattachment":false,"key":"/it/-/it-0.0.4.tgz","tarball":"http://registry.cnpm.dingdandao.com/it/download/it-0.0.4.tgz"},"_npmVersion":"1.1.59","_npmUser":{"name":"damartin","email":"doug.martin@pollenware.com"},"maintainers":[{"name":"aheuermann","email":""},{"name":"damartin","email":"doug@dougamartin.com"},{"name":"dustinsmith1024","email":""}],"publish_time":1346699058241,"_hasShrinkwrap":false,"_cnpm_publish_time":1346699058241,"_cnpmcore_publish_time":"2021-12-16T11:26:50.210Z"},"0.0.3":{"name":"it","description":"A testing framework for node","version":"0.0.3","keywords":["testing","test","async","function testing","bdd","unit","unit testing"],"repository":{"type":"git","url":"git@github.com:doug-martin/it.git"},"dependencies":{"comb":">=0.1.2","commander":">=0.5.1"},"homepage":"http://github.com/doug-martin/it","author":{"name":"Doug Martin","url":"http://blog.dougamartin.com"},"main":"index.js","bin":{"it":"./bin/it"},"directories":{"lib":"lib"},"engines":{"node":">= 0.6.1"},"_id":"it@0.0.3","dist":{"shasum":"3464262ea1f520d2b601f7c26c6f57a93686e540","size":10380,"noattachment":false,"key":"/it/-/it-0.0.3.tgz","tarball":"http://registry.cnpm.dingdandao.com/it/download/it-0.0.3.tgz"},"maintainers":[{"name":"aheuermann","email":""},{"name":"damartin","email":"doug@dougamartin.com"},{"name":"dustinsmith1024","email":""}],"publish_time":1342218833193,"_hasShrinkwrap":false,"_cnpm_publish_time":1342218833193,"_cnpmcore_publish_time":"2021-12-16T11:26:50.407Z"},"0.0.2":{"name":"it","description":"A testing framework for node","version":"0.0.2","keywords":["testing","test","async","funciton testing","bdd","unit","unit testing"],"repository":{"type":"git","url":"git@github.com:doug-martin/it.git"},"dependencies":{"comb":">=0.1.1","commander":">=0.5.1"},"homepage":"http://github.com/doug-martin/it","author":{"name":"Doug Martin","url":"http://blog.dougamartin.com"},"main":"index.js","bin":{"it":"./bin/it"},"directories":{"lib":"lib"},"engines":{"node":">= 0.6.1"},"_npmUser":{"name":"damartin","email":"doug.martin@pollenware.com"},"_id":"it@0.0.2","devDependencies":{},"optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.21","_nodeVersion":"v0.6.17","_defaultsLoaded":true,"_from":"it","dist":{"shasum":"3c329b0b4767195019fdb22f77732bcff2d65ba8","size":10152,"noattachment":false,"key":"/it/-/it-0.0.2.tgz","tarball":"http://registry.cnpm.dingdandao.com/it/download/it-0.0.2.tgz"},"maintainers":[{"name":"aheuermann","email":""},{"name":"damartin","email":"doug@dougamartin.com"},{"name":"dustinsmith1024","email":""}],"publish_time":1338917240572,"_hasShrinkwrap":false,"_cnpm_publish_time":1338917240572,"_cnpmcore_publish_time":"2021-12-16T11:26:50.613Z"},"0.0.1":{"name":"it","description":"A testing framework for node","version":"0.0.1","keywords":["testing","test","async","funciton testing","bdd","unit","unit testing"],"repository":{"type":"git","url":"git@github.com:doug-martin/it.git"},"dependencies":{"comb":">=0.1.0","commander":">=0.5.1"},"homepage":"http://github.com/doug-martin/it","author":{"name":"Doug Martin","url":"http://blog.dougamartin.com"},"main":"index.js","bin":{"it":"./bin/it"},"directories":{"lib":"lib"},"engines":{"node":">= 0.6.1"},"_npmUser":{"name":"damartin","email":"doug.martin@pollenware.com"},"_id":"it@0.0.1","devDependencies":{},"optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.4","_nodeVersion":"v0.6.12","_defaultsLoaded":true,"dist":{"shasum":"4e20083c4ba212bed2ced317088b35539bd09bef","size":8930,"noattachment":false,"key":"/it/-/it-0.0.1.tgz","tarball":"http://registry.cnpm.dingdandao.com/it/download/it-0.0.1.tgz"},"maintainers":[{"name":"aheuermann","email":""},{"name":"damartin","email":"doug@dougamartin.com"},{"name":"dustinsmith1024","email":""}],"publish_time":1331665987058,"_hasShrinkwrap":false,"_cnpm_publish_time":1331665987058,"_cnpmcore_publish_time":"2021-12-16T11:26:50.805Z"}},"readme":"[![Build Status](https://travis-ci.org/doug-martin/it.png)](https://travis-ci.org/doug-martin/it)\n\n[![browser support](https://ci.testling.com/doug-martin/it.png)](https://ci.testling.com/doug-martin/it)\n\n# It\n\n## Overview\n\nIt is a testing framework for node.js and the browser.\n\n **Features**\n\n  * Supports Promises, and the mocha `done(err)` style of async tests.\n  * Browser Support\n  * AMD support\n  * Node.js Support\n  * Proper exit codes for ci\n  * Multiple reporters, including TAP for testling ci\n  * Does not export global variables, you can run your tests individually with node or with the it executable.\n  * Support for filtering tests.\n\n## Installation\n\n    npm install it\n\nTo use the it executable\n\n    npm install -g it\n\nIn the browser\n\n```html\n<!DOCTYPE html>\n<html>\n    <head>\n        <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n        <meta charset=\"utf-8\">\n        <title>It Tests</title>\n        <link rel=\"stylesheet\" type=\"text/css\" href=\"it.css\">\n    </head>\n    <body>\n    <div id=\"it\"></div>\n    <script src=\"it.js\"></script>\n    <script>\n        //optionally export assert as a global\n        assert = it.assert;\n    </script>\n    <!--Import your scripts-->\n    <script>\n        it.run();\n    </script>\n</body>\n</html>\n```\n\nWith requirejs\n\n```html\n<!DOCTYPE html>\n<html>\n<head>\n    <meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n    <meta charset=\"utf-8\">\n    <title>It Tests Requirejs</title>\n    <link rel=\"stylesheet\" type=\"text/css\" href=\"it.css\">\n</head>\n<body>\n<div id=\"it\"></div>\n<script data-main=\"scripts/main\" src=\"scripts/require.js\"></script>\n<script>\n    require([\n        'it',\n        //require your tests\n    ], function (it) {\n        it.run();\n    });\n</script>\n</body>\n</html>\n\n```\n\n## Usage\n\n### Getting Started\n\nThe basic structure of a test in `it` looks like the following.\n\n```javascript\n\nvar it = require(\"it\"),\n    assert = require(\"assert\");\n\nit.describe(\"an it test\", function(it){\n\n    //the should method is a conveience over writing it(\"should\").\n    it.should(\"have a should method\", function(){\n        assert.isFunction(it.should);\n    });\n\n    //it can also be used as a function\n    it(\"should be able to be called as a function\", function(){\n        assert.isFunction(it);\n    });\n\n    it.describe(\"#describe\", function(it){\n        //now we can write some more tests!\n    });\n\n});\n\n```\n\n\n### Synchronous tests\n\nWriting synchronous tests in **It** is extremely simple. So lets start off with an example.\n\nLets assume we have a Person Object\n\n```javascript \nvar Person = function (name, age) {\n    this.name = name;\n    this.age = age;\n\n    this.getOlder = function (years) {\n        if (years > 0) {\n            this.age = this.age + years;\n        }\n    };\n\n};\n```\n\nThe first tests we could run on person could be testing the setting of name and age.\n\n```javascript\n\nvar it = require(\"../index\"),\n    assert = require(\"assert\");\n\nit.describe(\"Person\", function (it) {\n\n    it.should(\"set set name\", function () {\n        var person = new Person(\"bob\", 1);\n        assert.equal(person.name, \"bob\");\n    });\n\n    it.should(\"set set age\", function () {\n        var person = new Person(\"bob\", 1);\n        assert.equal(person.age, 1);\n    });\n    \n});    \n    \n```\nNotice we use the **it** passed back to the describe callback.\n\nNext we could test different scenarios of Person#getOlder\n\n```javascript\nvar it = require(\"../index\"),\n    assert = require(\"assert\");\n\nit.describe(\"Person\", function (it) {\n\n    it.describe(\"#getOlder\", function (it) {\n\n        it.should(\"accept positive numbers\", function () {\n            var person = new Person(\"bob\", 1);\n            person.getOlder(2);\n            assert.equal(person.age, 3);\n        });\n\n        it.should(\"not apply negative numbers\", function () {\n            var person = new Person(\"bob\", 1);\n            person.getOlder(-2);\n            assert.equal(person.age, 1);\n        });\n    });\n\n});\n\n```\n\nIn this example we are describing the **getOlder** method and run different tests against it. \nNotice the **it** passed back is used again.\n\nYou may nest tests as deep as you like as long as you remember to use the proper **it**. \n\n```javascript\nit.describe(\"#getOlder nested\", function (it) {\n\n    it.describe(\"with positive numbers\", function (it) {\n        \n        it.should(\"work\", function () {\n            var person = new Person(\"bob\", 1);\n            person.getOlder(2);\n            assert.equal(person.age, 3);\n        });\n        \n    });\n\n    it.describe(\"with negative numbers\", function () {\n        \n        //uh oh wrong it \n        it.should(\"not work\", function () {\n            var person = new Person(\"bob\", 1);\n            person.getOlder(-2);\n            assert.equal(person.age, 1);\n        });\n        \n    });\n\n});\n```\n\n### Asynchronous tests\n\nWriting asynchronous tests in **It** is just as easy as writing synchronous tests.\n\nLets modify Person to make get older async\n\n```javascript\nvar Person = function (name, age) {\n    this.name = name;\n    this.age = age;\n\n    this.getOlder = function (years, next) {\n        setTimeout(function () {\n            this.age = this.age + years;\n            next(null, this);\n        }.bind(this), years * 500);\n    };\n};\n```\n\nNow that **getOlder** is async lets test it\n\nIn this example a promise is the return value. If you have used `comb`, `Q`, `promises-extedned` or any other framework that uses\n**Promises** then this will feel pretty natural to you. The test will wait for the promise to resolve before  continuing any other tests.\n\n\n```javascript\n\n   var p = require(\"promise-extended\");\n\n   it.describe(\"#getOlder\", function (it) {\n       //return promise\n       it.should(\"not apply negative numbers\", function () {\n           var ret = new p.promise();\n           var person = new Person(\"bob\", 1);\n           person.getOlder(-2, function (err, person) {\n               assert.equal(person.age, 1);\n               ret.callback();\n           });\n           return ret.promise();\n       });\n   });\n```\n\nIn this example the should callback accepts a `next(err)` argument which is a function that should be called when the current test is done. So if next is invoked with a first argument other than null or undefined then\nit is assumed that the test errored.\n\n```javascript\n\n   it.describe(\"#getOlder\", function (it) {\n       //Call with next\n       it.should(\"accept positive numbers\", function (next) {\n           var person = new Person(\"bob\", 1);\n           person.getOlder(2, function (err, person) {\n               assert.equal(person.age, 3);\n               next();\n           });\n       });\n   });\n```\n\n### context\n\n`it` also supports the concept of a context, which is a set of functionality that should belong to the current `describe` or `suite` tests but needs something extra like extra setup or tear down functionality.\n\nIn fact anything you can do withing the `describe` callback you can do in a `context`.\n\n\n```\n\nit.describe(\"contexts\", function(it){\n\n    it.context(function(it){\n\n        var called;\n        it.beforeAll(function(){\n            called = true;\n        });\n\n        it(\"should allow custom beforeAll\", function(){\n            assert.isTrue(called);\n        });\n    });\n\n    it.context(function(it){\n\n        var called\n        it.beforeEach(function(){\n            called = true;\n        });\n\n        it(\"should allow custom beforeEach\", function(){\n            assert.isTrue(called);\n        });\n    });\n})\n\n```\n\n\n\n\n### Timeouts\n\nTo set a duration limit on each test within a suite use the `timeout(duration)` method.\n\n```\n\nit.describe(\"#timeouts\", function(){\n\n    it.timeout(100);\n\n    //this spec will fail\n    it.should(\"fail it action duration is > 100\", function(next){\n        setTimeout(function(){\n            next();\n        }, 200);\n    });\n\n    //this spec will pass!\n    it.should(\"not fail it action duration < 100\", function(){\n        assert.isTrue(true);\n    });\n\n});\n\n```\n\n### Skip\n\nIf you wish to skip an action you can use the `skip` method which will put the action into a `pending` state, and not run it.\n\n```javascript\n\n\nit.describe(\"#timeouts\", function(){\n\n    it.timeout(100);\n\n    //this spec be skipped\n    it.skip(\"fail it action duration is > 100\", function(next){\n        setTimeout(function(){\n            next();\n        }, 200);\n    });\n\n    //this spec will not\n    it(\"not fail it action duration < 100\", function(){\n        assert.isTrue(true);\n    });\n\n});\n\n```\n\n## Tdd\n\n`it` also supports tdd style tests.\n\n```javascript\n\nit.suite(\"Person\", function (it) {\n\n    it.suite(\"#getOlder\", function (it) {\n\n        it.test(\"accept positive numbers\", function () {\n            var person = new Person(\"bob\", 1);\n            person.getOlder(2);\n            assert.equal(person.age, 3);\n        });\n\n        it.test(\"not apply negative numbers\", function () {\n            var person = new Person(\"bob\", 1);\n            person.getOlder(-2);\n            assert.equal(person.age, 1);\n        });\n    });\n\n});\n\n```\n\n### Running Tests\n\nTo run tests there are two options the **it** executable \n\nOptions\n  \n  * -d, --directory : The root directory of your tests\n  * -f --filter : A filter to apply to run certain behaviors/suites/tests\n  * -r, --reporter : The reporter to use when running the tests\n  * --cov-html : create coverage output in html, if an output path is included then the file will be written to that file otherwise it will defalt to `./coverage.html`\n  * --reporters : Display a list of reporters that are available\n  * -h, --help : Displays help.\n\nTo run an entire suite\n\n    it -d ./mytests -r dotmatrix\n\n\nTo run an individual test\n\n    it ./mytests/person.test.js\nOr\n\n    it -f \"Person\"\n    \nTo run the #getOlder spec\n\n    it -f \"Person:#getOlder\"\n\n    \n\nYou can alternatively run the test directly.\n\n**Note** When running tests using the `it.run()` method, `it` will not automatically exit the program on completion, therefore if you still have items like DB connections still open your program will not exit.\n\n```javascript\n\nit.describe(\"A Person\", function(it){\n\n     it.should(\"set set name\", function () {\n        var person = new Person(\"bob\", 1);\n        assert.equal(person.name, \"bob\");\n    });\n\n    it.should(\"set set age\", function () {\n        var person = new Person(\"bob\", 1);\n        assert.equal(person.age, 1);\n    });\n});\n\nit.run();\n\n```\n\nYou can also filter the tests to run from within the test\n\n```javascript\n\nit.describe(\"A Person\", function(it){\n\n     it.should(\"set name\", function () {\n        var person = new Person(\"bob\", 1);\n        assert.equal(person.name, \"bob\");\n    });\n\n    it.should(\"set age\", function () {\n        var person = new Person(\"bob\", 1);\n        assert.equal(person.age, 1);\n    });\n\n});\n\nit.run(\"A Person:should set name\");\n\n```\n\n### Reporters\n\n**`spec`**\n\n![spec](https://raw.github.com/doug-martin/it/master/assets/spec.png)\n\n**`dot`**\n\n![dot](https://raw.github.com/doug-martin/it/master/assets/dot.png)\n\n**`tap`**\n\n![tap](https://raw.github.com/doug-martin/it/master/assets/tap.png)\n\n**`doc`**\n\n![doc](https://raw.github.com/doug-martin/it/master/assets/doc.png)\n\n**`html`**\n\n![html](https://raw.github.com/doug-martin/it/master/assets/browser.png)\n\n### Code Coverage\nIf you use [node-jscoverage](https://github.com/visionmedia/node-jscoverage) to generate coverage then by default `it` will output a coverage report. You may also output coverage to an `HTML` file by passing in the `--cov-html` flag to the executable.\n\nFor example out put see [patio test coverage](http://c2fo.github.com/patio/coverage.html).\n\n\n### Assert extensions\n\nThe following methods are added to assert for convenience\n\n  * `lengthOf` - assert the length of an array\n  * `isTrue` - assert that a value is true\n  * `isFalse` - assert that a value is false \n  * `isRegExp` - assert that a value is a Regular Expression\n  * `isArray` - assert that a value is an Array\n  * `isHash` - assert that a value is a plain object\n  * `isObject` - assert that a value is a object\n  * `isNumber` - assert that a value is a Number\n  * `isDate` - assert that a value is a Date\n  * `isBoolean` - assert that a value is a Boolean\n  * `isString` - assert that a value is a String\n  * `isUndefined` - assert that a value is undefined\n  * `isUndefinedOrNull` - assert that a value is undefined or null\n  * `isPromiseLike` - assert that a value is Promise like (contains the funtions \"then\", \"addErrback\", and \"addCallback\")\n  * `isFunction` - assert that a value is a function\n  * `isNull` - assert that a value is null\n  * `isNotNull` - assert that a value is not null\n  * `instanceOf` - assert that a value is an instanceof a particular object\n  * `truthy` - assert that the value is truthy.\n  * `falsy` - assert that the value is falsy.\n\n### License\n\n\nMIT <https://github.com/doug-martin/it/raw/master/LICENSE>\n\n### Meta\n\n* Code: `git clone git://github.com/doug-martin/it.git`\n","_attachments":{},"homepage":"http://doug-martin.github.com/it","bugs":{"url":"https://github.com/doug-martin/it/issues"}}