Merge pull request #516 from danvk/jstd-coverage
[dygraphs.git] / auto_tests / README
... / ...
CommitLineData
1These tests are run with js-test-driver
2(http://code.google.com/p/js-test-driver/).
3
4Running tests
5-------------
6
7With phantomjs:
8
9- Install phantomjs (http://www.phantomjs.org).
10
11- Start a terminal window at the dygraphs root directory (one
12 directory up from here.)
13
14- Run "./test.sh". This will tell you whether the tests passed.
15
16
17With a real browser:
18
19- Start a terminal window at the dygraphs root directory (one
20 directory up from here.)
21
22- From there, you start the test server and capture at least one slave
23 browser:
24
25 Run:
26 $ java -jar ./auto_tests/lib/JsTestDriver-1.3.3c.jar --port 9876
27
28 Open
29 http://localhost:9876/capture
30 in the browser you want to use for your test.
31
32- Run the tests with:
33
34 $ java -jar ./auto_tests/lib/JsTestDriver-1.3.3c.jar --tests all
35
36
37Debugging tests
38---------------
39
40This is a bit of a hack, but you can also run tests manually inside the browser
41using auto_tests/misc/local.html.
42
43Once you've opened that page, open up the JavaScript console and run something
44like:
45
46 new SimpleDrawingTestCase().runTest("testDrawSimpleRangePlusOne")
47
48to run just one test. This is useful for seeing the dygraph that the test
49creates, setting breakpoints, etc.
50
51Please don't rely on it as proof that your tests pass; the command-line is the
52reference for ensuring Dygraphs automated tests pass.
53
54
55(This is a specialized version of the instructions found at
56http://code.google.com/p/js-test-driver/wiki/GettingStarted.
57They're listed as a courtesy, but you really should get to understand
58js-test-driver, which has lots of powerful features.)
59
60
61Code Coverage
62-------------
63
64To generate code coverage data, start the jstd test server:
65
66 $ java -jar ./auto_tests/lib/JsTestDriver-1.3.3c.jar --port 9876
67
68Then run the tests with the --outputCoverage option:
69
70 $ java -jar ./auto_tests/lib/JsTestDriver-1.3.3c.jar --tests all --testOutput .
71
72This can take a few minutes. It will spew out gobs of XML files, which should
73be deleted. The one file you care about is jsTestDriver.conf-coverage.dat. It
74contains LCOV-format coverage data. It contains coverage data for _all_ JS
75files, including the tests themselves and library code which is irrelevant for
76coverage analysis. So you need to filter it down:
77
78 $ cat jsTestDriver.conf-coverage.dat | ./auto_tests/misc/filter-lcov.py
79
80To post the coverage data to coveralls, you'll need to export a few environment
81variables and install node-coveralls:
82
83 $ npm install # installs node-coveralls, which is listed in package.json
84 $ export COVERALLS_SERVICE_NAME=jstd
85 $ export COVERALLS_REPO_TOKEN=... # get this by visiting http://coveralls.io
86 $ export COVERALLS_GIT_COMMIT=$(git rev-parse HEAD)
87 $ cat jsTestDriver.conf-coverage.dat \
88 | ./auto_tests/misc/filter-lcov.py \
89 | ./node_modules/coveralls/bin/coveralls.js
90
91If all goes well, you should see your coverage data posted at
92https://coveralls.io/r/danvk/dygraphs.