Closure Library PhantomJS is the unittest runner on command-line.
This runs tests under phantomjs and Google Closure Library.
And this will be able to output the test results in a variety of formats including formats TAP, Spec, Dot.
$ git clone https://github.com/waka/closure-library-phantomjs.git
$ git submodule update --init
# assume you have built and installed phantomjs
# And you will type the following command to create deps.js
$ python vendor/google-closure-library/closure/bin/build/depswriter.py --output_file=deps.js --root_with_prefix="sample ../../../../sample"
# Run all test scripts
$ phantomjs lib/closure-library-phantomjs.js sample/test/all_tests.html
# If you run single test script
$ phantomjs lib/closure-library-phantomjs.js sample/test/ui/textarea_test.html
$ npm install
$ bin/closure-library-phantomjs sample/test/all_tests.html
$ bin/closure-library-phantomjs sample/test/ui/textarea_test.html
or
$ npm install closure-library-phantomjs
# installed command-line script in your npm packages directory
$ closure-library-phantomjs path/to/your_all_tests.html
$ closure-library-phantomjs path/to/your_single_test.html
Spec format (default)
$ closure-library-phantomjs test.html -r spec
# or
$ phantomjs lib/closure-library-phantomjs.js test.html spec
$ closure-library-phantomjs test.html -r tap
# or
$ phantomjs lib/closure-library-phantomjs.js test.html tap
# if you use with CI tool (Jenkins, etc)
$ phantomjs lib/closure-library-phantomjs.js test.html tap > js_test_result_tap.txt
Dot format
$ closure-library-phantomjs test.html -r dot
# or
$ phantomjs lib/closure-library-phantomjs.js test.html dot
Set timeout of phantomjs (default: 600000 ms)
$ closure-library-phantomjs --timeout 1000
# or
$ phantomjs lib/closure-library-phantomjs.js test.html spec {"timeout": 1000}
Set cookie (default: none)
$ closure-library-phantomjs --cookie app=key
# or
$ phantomjs lib/closure-library-phantomjs.js test.html spec {"cookies": {"app": "key"}}
Set http header (default: none)
$ closure-library-phantomjs --header X-TEST=foo
# or
$ phantomjs lib/closure-library-phantomjs.js test.html spec {"headers": {"X-TEST": "foo"}}
Set settings (default: none) See PhantomJS API document
$ closure-library-phantomjs --setting userAgent=Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)
# or
$ phantomjs lib/closure-library-phantomjs.js test.html spec {"settings": {"userAgent": "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)"}}
Set webpage viewport size (default: 1024x768)
$ closure-library-phantomjs --view 1280x900
# or
$ phantomjs lib/closure-library-phantomjs.js test.html spec {"viewport": {"width": 1280, "height": 900}}