1 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
|
2 | <html>
|
3 | <head>
|
4 | <title>JSCoverage - FAQ</title>
|
5 | <link rel="stylesheet" type="text/css" href="reset-fonts-grids.css">
|
6 | <link rel="stylesheet" type="text/css" href="style.css">
|
7 | </head>
|
8 | <body>
|
9 | <div id="doc3" class="yui-t5">
|
10 | <div id="hd"><h1><a href="./">JSCoverage</a><br><span class="tag">code coverage for JavaScript</span></h1></div>
|
11 | <div id="bd">
|
12 | <div id="yui-main">
|
13 | <div id="jscoverage-main" class="yui-b">
|
14 | <h2><abbr title="Frequently Asked Questions">FAQ</abbr></h2>
|
15 |
|
16 | <h3>Can I use JSCoverage to measure code coverage for a page on <code>http://example.com/</code>?</h3>
|
17 |
|
18 | <p>
|
19 | In order to measure the code coverage of a page on <code>http://example.com/</code>,
|
20 | you must run <code>jscoverage</code> to create a <code>jscoverage.html</code> file on the
|
21 | <code>example.com</code> server. You cannot use <code>http://example.org/jscoverage.html</code>
|
22 | to measure the code coverage of a page located on <code>http://example.com/</code>.
|
23 | </p>
|
24 |
|
25 | <p>
|
26 | The fundamental reason for this limitation is the
|
27 | <a href="http://www.mozilla.org/projects/security/components/same-origin.html">Same Origin Policy</a>
|
28 | for untrusted JavaScript.
|
29 | </p>
|
30 |
|
31 | <p>
|
32 | (In fact, the current version of JSCoverage is slightly more restrictive
|
33 | than this: it requires that the JavaScript being measured reside under the
|
34 | same <strong>directory</strong> as the <code>jscoverage.html</code> file.)
|
35 | </p>
|
36 |
|
37 | <h3>Why doesn't my test suite run under JSCoverage in Firefox 3?</h3>
|
38 |
|
39 | <p>
|
40 | Firefox 3 introduces <a
|
41 | href="http://tech.groups.yahoo.com/group/jsunit/message/1075">new
|
42 | security restrictions</a> on local files. Depending on the way your
|
43 | test suite is organized, this may cause problems for JSCoverage.
|
44 | (You may get the error "uncaught exception: Permission denied to get property Window._$jscoverage".)
|
45 | There are several workarounds:
|
46 | </p>
|
47 |
|
48 | <ul class="list">
|
49 | <li><p>Place your files on a web server instead of loading them from the file system.
|
50 | This is usually the simplest solution.</p>
|
51 | <li><p>Organize your HTML files in your test suite in a flat directory structure. For example, suppose that
|
52 | you instrument your test suite with this command:</p>
|
53 | <pre>
|
54 | jscoverage src instrumented
|
55 | </pre>
|
56 | <p>If all your HTML files are located directly under the <code>src/</code> directory (i.e., not in a
|
57 | subdirectory of <code>src/</code>), then you should not have any problems using Firefox 3.</p>
|
58 | <li><p>Set the <a href="http://kb.mozillazine.org/Editing_configuration">Firefox preference</a> named
|
59 | <code><a href="http://kb.mozillazine.org/Security.fileuri.origin_policy">security.fileuri.origin_policy</a></code>
|
60 | to 3.</p>
|
61 | </ul>
|
62 |
|
63 | <h3>I'm trying to load my code with the URL
|
64 | <code>file:///C:/foo/bar/jscoverage.html?foo/bar.html</code>
|
65 | and I'm getting all kinds of JavaScript errors.</h3>
|
66 |
|
67 | <p>
|
68 | Internet Explorer 6 seems to have problems with a <code>file:</code> URL
|
69 | that has a query string with a slash in it.
|
70 | </p>
|
71 | <p>
|
72 | As a workaround:
|
73 | </p>
|
74 | <ul class="list">
|
75 | <li><p>Place your files on a web server instead of loading them from the file system.
|
76 | (<code>http:</code> URLs work fine.)</p>
|
77 | <li><p>Do not use a query string; enter your URL in the "URL" field in the "Browser" tab.</p>
|
78 | <li><p>Rearrange your directory structure so that <code>bar.html</code>
|
79 | ends up in the same directory as <code>jscoverage.html</code>; then
|
80 | you can use the URL
|
81 | <code>file:///C:/foo/bar/jscoverage.html?bar.html</code>
|
82 | with no slash in the query string.</p>
|
83 | <li><p>Use a different browser. (IE 7 seems to work.)</p>
|
84 | </ul>
|
85 |
|
86 | <h3>JSCoverage changes my cursor to a busy cursor, and it never changes back!</h3>
|
87 |
|
88 | <p>
|
89 | Certain browsers (<i>e. g</i>., Internet Explorer 6, Opera, Safari) have trouble changing
|
90 | the cursor. Try moving the mouse and your cursor should change back to normal.
|
91 | </p>
|
92 |
|
93 | <p>
|
94 | See <a href="http://groups.google.com/group/Google-Web-Toolkit/browse_thread/thread/631908bd63241136/783c307480f95d8c">this discussion</a> for more information.
|
95 | </p>
|
96 |
|
97 | <h3>JSCoverage hangs sometimes when rendering the coverage report.</h3>
|
98 |
|
99 | <p>
|
100 | With Internet Explorer 6 (I think I see a pattern here), garbage collection can cause performance problems.
|
101 | (More information <a href="http://ajaxian.com/archives/garbage-collection-in-ie6">here</a>.)
|
102 | </p>
|
103 |
|
104 | <h3 id="jsunit">Can JSCoverage be used with <a href="http://www.jsunit.net/">JsUnit</a>?</h3>
|
105 |
|
106 | <p>
|
107 | It is necessary to run JSCoverage in <dfn>inverted mode</dfn>. You will have to
|
108 | modify JsUnit to launch JSCoverage.
|
109 | </p>
|
110 |
|
111 | <p>
|
112 | See the directory <code>doc/example-jsunit</code> for an example. It
|
113 | contains a copy of JsUnit version 2.2alpha11, with the file
|
114 | <code>jsunit/app/main-data.html</code> slightly modified to add a button
|
115 | which launches JSCoverage. It also contains a simple unit test file <code>test.html</code>. You
|
116 | can instrument this example as follows:
|
117 | </p>
|
118 |
|
119 | <pre>
|
120 | jscoverage --no-instrument=jsunit doc/example-jsunit doc/instrumented-jsunit
|
121 | </pre>
|
122 |
|
123 | <p>
|
124 | You can then run the <code>test.html</code> file in JsUnit's <code>jsunit/testRunner.html</code>.
|
125 | The simplest way to do this is probably to copy the contents of <code>doc/instrumented-jsunit</code>
|
126 | to the root of a web server and then access the URL
|
127 | </p>
|
128 |
|
129 | <pre>
|
130 | http://127.0.0.1/jsunit/testRunner.html?testPage=http://127.0.0.1/test.html&autoRun=true
|
131 | </pre>
|
132 |
|
133 | <p>
|
134 | After the test suite has been run, click on the "Coverage report" button
|
135 | to get a coverage report.
|
136 | </p>
|
137 |
|
138 | </div>
|
139 | </div>
|
140 | <div id="jscoverage-sidebar" class="yui-b">
|
141 | <ul>
|
142 | <li><a href="./">Home</a>
|
143 | <li><a href="news.html">News</a> <a href="http://siliconforks.com/jscoverage/news.xml" type="application/rss+xml" title="RSS feed for JSCoverage"><img src="feed-icon-14x14.png" alt="RSS feed"></a>
|
144 | <li><a href="manual.html">Documentation</a>
|
145 | <li><a href="demo.html">Demo</a>
|
146 | <li><a href="http://siliconforks.com/jscoverage/download.html">Download</a>
|
147 | <li>FAQ
|
148 | <li><a href="help.html">Help</a>
|
149 | <li><a href="license.html">License</a>
|
150 | <li><a href="links.html">Links</a>
|
151 | <li><a href="users.html">Users</a>
|
152 | <li><a href="http://siliconforks.com/jscoverage/bugs/">Bug tracker</a>
|
153 | </ul>
|
154 | </div>
|
155 | </div>
|
156 | <div id="ft">
|
157 | <address>
|
158 | Copyright © 2007, 2008 <a href="http://siliconforks.com/"><img src="siliconforks-16x16.png" width="16" height="16" class="icon" alt="Silicon Forks"></a> <a href="http://siliconforks.com/">siliconforks.com</a><br>
|
159 | <a href="mailto:jscoverage@siliconforks.com">jscoverage@siliconforks.com</a>
|
160 | </address>
|
161 | </div>
|
162 | </div>
|
163 | </body>
|
164 | </html>
|