{"_id":"ichabod","_rev":"25-1ad1719e427ef6bbe40f9f93d63515e3","name":"ichabod","description":"A test harness for writing client side js tests and automating test runs.","dist-tags":{"latest":"0.9.1"},"versions":{"0.5.0":{"name":"ichabod","description":"A test harness for writing client side js tests and automating test runs.","version":"0.5.0","repository":{"type":"git","url":"git://github.com/larrymyers/ichabod.git"},"author":{"name":"Larry Myers","email":"larry@larrymyers.com"},"main":"index","engines":{"node":">=0.2.6"},"dependencies":{"zombie":">=0.9.1","connect":">=1.0.3","glob":">=2.0.2","soda":">=0.2.3"},"_id":"ichabod@0.5.0","_engineSupported":true,"_npmVersion":"0.3.18","_nodeVersion":"v0.4.0","directories":{"lib":"./lib","bin":"./bin"},"bin":{"ichabod":"bin/ichabod"},"files":[""],"_defaultsLoaded":true,"dist":{"shasum":"0cf4060d475bc55d3eaddd4fd2dfc35ced545fcf","tarball":"https://registry.npmjs.org/ichabod/-/ichabod-0.5.0.tgz","integrity":"sha512-ky+8wEdluGgjRYe/E2dZ1lrLF86jEE40i3FPwaoSSYsEm0ftriVn3blY5o7K0ZQJkvoHsCoX5JsiiFS36p5U7g==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIF0EqDkHJYRiwGZpg3bRQaDez7ZDBYOfO5QgJqMfV9deAiBhdekd1jfOcN8akaFpI2/I2YzbG1mTO2OOAHenVGVXRQ=="}]}},"0.9.0":{"name":"ichabod","description":"A test harness for writing client side js tests and automating test runs.","version":"0.9.0","repository":{"type":"git","url":"git://github.com/larrymyers/ichabod.git"},"author":{"name":"Larry Myers","email":"larry@larrymyers.com"},"main":"index","engines":{"node":">=0.2.6"},"dependencies":{"zombie":">=0.9.1","connect":">=1.0.3","glob":">=3.0.0","soda":">=0.2.3","handlebars":">=1.0.0","optimist":">=0.3.1","underscore":">=1.3.1"},"_npmUser":{"name":"larrymyers","email":"larry@larrymyers.com"},"_id":"ichabod@0.9.0","devDependencies":{},"optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.0-3","_nodeVersion":"v0.6.10","_defaultsLoaded":true,"dist":{"shasum":"972751150cb9e98fc7578a97858ca14d18a014ad","tarball":"https://registry.npmjs.org/ichabod/-/ichabod-0.9.0.tgz","integrity":"sha512-pppJQ7u726e/m9uMUan9SODvn5G2Jz2eYPZ73cg0L60hAZ8AybR1UROAHlu3dKOK6tFrmAdVkbrhadUlaaYRpg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB6/HNqkL/faSOkIvEszaw2iPvSYdxCv7vIdAplxRheHAiBWL0fN/tv4AYN7kSlksvA8EJKXJJLr4i0kAJ+/jJu94Q=="}]},"readme":"# Ichabod - A Node.js Automated Testharness for Client Side Javascript\n\nWriting tests for client side javascript isn't that hard, tools like [Jasmine](https://github.com/pivotal/jasmine)\nmake it pretty easy. What's hard is getting those tests automated and running in a continuous build \nserver (like [Jenkins](http://jenkins-ci.org/)).\n\nIchabod takes care of running your entire test suite in a headless (or remote) browser instance and outputting\nthe test results to the terminal for the user, and to disk for the build server.\n\nThe included example projects show how to use Jasmine to write your tests, and includes a custom reporter\nthat outputs JUnit XML for continuous integration systems that understand that format.\n\nIt also supports [require.js](http://requirejs.org), so you can easily test your javascript\nbuilt as AMD modules.\n\n## Install\n\n    npm install ichabod\n\n## The Config File\n\nTo use Ichabod as a test runner you need to provide it a config file so that it knows where your\ntest directory is and what tests to run. The file is written in json format. A simple example:\n\n    {\n        \"testDir\": \".\",\n        \"reportsDir\": \"./reports\",\n        \"sources\": [\n            \"https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js\"\n        ],\n        \"tests\": [\n            \"*Spec.js\"\n        ]\n    }\n\n* testDir: (required) the root of your test directory, and will be used as the doc root by static server.\n* reportsDir: (required) the directory where the test output will be written to. If it doesn't exist it will be created.\n* tests: (required) an array that contains all the test pages to run. It is assumed they are relative to the 'testDir'.\n* runner: (optional) either \"zombie\" or \"selenium\". Zombie.js is the headless DOM, where as selenium \n  is Selenium RC. It is expected you'll have Selenium Server running as well. Defaults to using Zombie.js.\n* browser: (optional) only used if you want to use selenium. Takes any valid selenium browser string. Defaults to \"firefox\".\n* requirejs: (options) set this to true and require.js will be used. removes the need to provide any sources.\n\nPaths relative to the config file (recommended) will be expanded out to absolute paths at runtime.\n\nTest file strings can be glob expressions and will be expanded out at runtime.\n\n## Running\n\nThe Ichabod source comes with an example project, feel free to use it as a base template to get started.\n\n### When Developing Tests\n\nIchabod can be used as a basic webserver to develop your tests.\n\n    ichabod -c <path-to-config> -m serve\n\n... and then point your web browser to:\n\n    http://localhost:8000/specrunner.html\n\n### Automated Runs\n\nTo do an automated run of your entire test suite use the following command:\n\n    ichabod -c <path-to-your-config-file>\n\nYou should then see output on the command line:\n\n    Basic Suite: 1 of 2 failed. :(\n    Another Suite: :)\n\n    Final Summary: \n    2 passed, 1 failed, 3 total.\n\nIf you get all smiles, then celebrate, you have a passing test suite!\n\n## Customizing\n\nThe included bin/ichabod script wraps both a static server and the ichabod runner. This assumes\nyour tests are isolated and have no server dependencies. If you have a more complex setup, such as \nback end components and live ajax calls, there are a few approaches:\n\n0. Mock out your external dependencies and get your client side javascript running in a self contained\n   environment that just requires a functioning DOM. Your tests will run faster and be less brittle.\n\n1. If you're already using Node.js for your project, then just modify the bin/ichabod script as\n   needed to start your app server and pass the host:port to the Runner.\n   \n2. If you have a non-Node.js application stack, then start your app server, and use the bin/ichabod\n   script as a template to write your own script and invoke the Runner with the host:port to your\n   app server.\n\n## Known Issues\n\nSince Ichabod uses Zombie.js as its headless browser, it will be missing any browser freatures that\nZombie.js is currently missing. Fortunately Zombie.js continues to improve, and I've found it comparable\nto HtmlUnit. If this is a limiting factor for you, I highly recommend using the selenium runner instead.\n\nCurrently Ichabod is geared towards a single server environment, and assumes things like Selenium Server are\nrunning on the same host. It is planned to bake in remote server support as well as support for Selenium Grid.\n\n## Why Ichabod?\n\n[Ichabod Crane](http://en.wikipedia.org/wiki/Ichabod_Crane) was a character from The Legend of\nSleepy Hollow, who ran from the Headless Horseman. Get it?\n","maintainers":[{"name":"larrymyers","email":"larry@larrymyers.com"}]},"0.9.1":{"name":"ichabod","description":"A test harness for writing client side js tests and automating test runs.","version":"0.9.1","repository":{"type":"git","url":"git://github.com/larrymyers/ichabod.git"},"author":{"name":"Larry Myers","email":"larry@larrymyers.com"},"main":"index","bin":{"ichabod":"./bin/ichabod"},"engines":{"node":">=0.2.6"},"dependencies":{"zombie":">=0.9.1","connect":">=1.0.3","glob":">=3.0.0","soda":">=0.2.3","handlebars":">=1.0.0","optimist":">=0.3.1","underscore":">=1.3.1"},"_npmUser":{"name":"larrymyers","email":"larry@larrymyers.com"},"_id":"ichabod@0.9.1","devDependencies":{},"optionalDependencies":{},"_engineSupported":true,"_npmVersion":"1.1.0-3","_nodeVersion":"v0.6.10","_defaultsLoaded":true,"dist":{"shasum":"a4f43f9603bb445aa6599a1c1fbb0fb489718f76","tarball":"https://registry.npmjs.org/ichabod/-/ichabod-0.9.1.tgz","integrity":"sha512-Wkghlo9xLelaDkpc8J0l6viHtXM+yMr56Gsctn7NmV9ec8e9FNhBpbNJwUzXxIclAR9Ep0VW0bseGH0mNCgPEA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGCIjfv6ueKd2ewW9dyRMe1WhOeVFcZCo5irIosEMzcaAiBBgB/mnIt0dtnP6ROEj/iPk9FaRvnu29xRt3+RrTzDeg=="}]},"readme":"# Ichabod - A Node.js Automated Testharness for Client Side Javascript\n\nWriting tests for client side javascript isn't that hard, tools like [Jasmine](https://github.com/pivotal/jasmine)\nmake it pretty easy. What's hard is getting those tests automated and running in a continuous build \nserver (like [Jenkins](http://jenkins-ci.org/)).\n\nIchabod takes care of running your entire test suite in a headless (or remote) browser instance and outputting\nthe test results to the terminal for the user, and to disk for the build server.\n\nThe included example projects show how to use Jasmine to write your tests, and includes a custom reporter\nthat outputs JUnit XML for continuous integration systems that understand that format.\n\nIt also supports [require.js](http://requirejs.org), so you can easily test your javascript\nbuilt as AMD modules.\n\n## Install\n\n    npm install ichabod\n\n## The Config File\n\nTo use Ichabod as a test runner you need to provide it a config file so that it knows where your\ntest directory is and what tests to run. The file is written in json format. A simple example:\n\n    {\n        \"testDir\": \".\",\n        \"reportsDir\": \"./reports\",\n        \"sources\": [\n            \"https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js\"\n        ],\n        \"tests\": [\n            \"*Spec.js\"\n        ]\n    }\n\n* testDir: (required) the root of your test directory, and will be used as the doc root by static server.\n* reportsDir: (required) the directory where the test output will be written to. If it doesn't exist it will be created.\n* tests: (required) an array that contains all the test pages to run. It is assumed they are relative to the 'testDir'.\n* runner: (optional) either \"zombie\" or \"selenium\". Zombie.js is the headless DOM, where as selenium \n  is Selenium RC. It is expected you'll have Selenium Server running as well. Defaults to using Zombie.js.\n* browser: (optional) only used if you want to use selenium. Takes any valid selenium browser string. Defaults to \"firefox\".\n* requirejs: (options) set this to true and require.js will be used. removes the need to provide any sources.\n\nPaths relative to the config file (recommended) will be expanded out to absolute paths at runtime.\n\nTest file strings can be glob expressions and will be expanded out at runtime.\n\n## Running\n\nThe Ichabod source comes with an example project, feel free to use it as a base template to get started.\n\n### When Developing Tests\n\nIchabod can be used as a basic webserver to develop your tests.\n\n    ichabod -c <path-to-config> -m serve\n\n... and then point your web browser to:\n\n    http://localhost:8000/specrunner.html\n\n### Automated Runs\n\nTo do an automated run of your entire test suite use the following command:\n\n    ichabod -c <path-to-your-config-file>\n\nYou should then see output on the command line:\n\n    Basic Suite: 1 of 2 failed. :(\n    Another Suite: :)\n\n    Final Summary: \n    2 passed, 1 failed, 3 total.\n\nIf you get all smiles, then celebrate, you have a passing test suite!\n\n## Customizing\n\nThe included bin/ichabod script wraps both a static server and the ichabod runner. This assumes\nyour tests are isolated and have no server dependencies. If you have a more complex setup, such as \nback end components and live ajax calls, there are a few approaches:\n\n0. Mock out your external dependencies and get your client side javascript running in a self contained\n   environment that just requires a functioning DOM. Your tests will run faster and be less brittle.\n\n1. If you're already using Node.js for your project, then just modify the bin/ichabod script as\n   needed to start your app server and pass the host:port to the Runner.\n   \n2. If you have a non-Node.js application stack, then start your app server, and use the bin/ichabod\n   script as a template to write your own script and invoke the Runner with the host:port to your\n   app server.\n\n## Known Issues\n\nSince Ichabod uses Zombie.js as its headless browser, it will be missing any browser freatures that\nZombie.js is currently missing. Fortunately Zombie.js continues to improve, and I've found it comparable\nto HtmlUnit. If this is a limiting factor for you, I highly recommend using the selenium runner instead.\n\nCurrently Ichabod is geared towards a single server environment, and assumes things like Selenium Server are\nrunning on the same host. It is planned to bake in remote server support as well as support for Selenium Grid.\n\n## Why Ichabod?\n\n[Ichabod Crane](http://en.wikipedia.org/wiki/Ichabod_Crane) was a character from The Legend of\nSleepy Hollow, who ran from the Headless Horseman. Get it?\n","maintainers":[{"name":"larrymyers","email":"larry@larrymyers.com"}]}},"maintainers":[{"name":"larrymyers","email":"larry@larrymyers.com"}],"time":{"modified":"2022-06-19T00:01:30.438Z","created":"2011-02-20T15:38:56.774Z","0.0.1":"2011-02-20T15:38:56.891Z","0.1.0":"2011-02-20T15:40:34.393Z","0.2.0":"2011-02-21T22:44:48.955Z","0.5.0":"2011-03-30T22:10:06.892Z","0.9.0":"2012-02-28T18:07:40.487Z","0.9.1":"2012-02-28T18:18:35.263Z"},"author":{"name":"Larry Myers","email":"larry@larrymyers.com"},"repository":{"type":"git","url":"git://github.com/larrymyers/ichabod.git"}}