1 | DOH: The Dojo Object Harness |
---|
2 | ============================ |
---|
3 | |
---|
4 | DOH is a unit test framework developed by the Dojo Toolkit Community. For the tutorial published |
---|
5 | with the latest release see: http://dojotoolkit.org/reference-guide/util/doh.html#util-doh. |
---|
6 | |
---|
7 | DOH is a constructed as an AMD package that uses doh/main.js for its main entry point. It may |
---|
8 | be executed in the browser or by node.js or rhino. Typically, it is loaded by the dojo AMD |
---|
9 | loader; however, it is also possible to use any complying loader. |
---|
10 | |
---|
11 | |
---|
12 | node.js |
---|
13 | ======= |
---|
14 | |
---|
15 | To run DOH via node.js, issue the command |
---|
16 | |
---|
17 | > node path/to/dojo/dojo.js load=doh test=path/to/test/module |
---|
18 | |
---|
19 | For example, from the util/doh/ directory you can run the self test as follows: |
---|
20 | |
---|
21 | ~/dev/dojotoolkit/util/doh> node ../../dojo/dojo.js load=doh test=doh/tests/selfTest |
---|
22 | |
---|
23 | Since node.js includes executing scripts to discover their location, the dojo node bootstrap |
---|
24 | can discover baseUrl (the dojo directory) without further help. |
---|
25 | |
---|
26 | |
---|
27 | rhino |
---|
28 | ===== |
---|
29 | |
---|
30 | To run DOH via rhino, issue the command |
---|
31 | |
---|
32 | >java -jar path/to/js.jar path/to/dojo/dojo.js baseUrl=path/to/dojo load=doh test=path/to/test/module |
---|
33 | |
---|
34 | For example, from the util/doh/ directory, you can run the self test as follows (assumes js.jar is in the user's |
---|
35 | home directory): |
---|
36 | |
---|
37 | ~/dev/dojotoolkit/util/doh> java -jar ../shrinksafe/js.jar ../../dojo/dojo.js baseUrl=../../dojo load=doh test=doh/tests/selfTest |
---|
38 | |
---|
39 | Since rhino does not give scripts the ability to discover their location, you must do one of the following |
---|
40 | |
---|
41 | * provide a baseUrl command line argument that specifies the dojo directory |
---|
42 | * execute the command form the the dojo directory |
---|
43 | |
---|
44 | Here's the equivalent example command from the dojo directory: |
---|
45 | |
---|
46 | ~/dev/dojotoolkit/dojo> java -jar ../util/shrinksafe/js.jar dojo.js load=doh test=doh/tests/selfTest |
---|
47 | |
---|
48 | |
---|
49 | browser |
---|
50 | ======= |
---|
51 | |
---|
52 | To run DOH in the browser, point your browser to util/DOH/runner.html. You'll also need to provide at least one |
---|
53 | test module to execute by the query parameter "test". For example, to run the dojo unit tests, the URL would |
---|
54 | look something like... |
---|
55 | |
---|
56 | http://localhost/dev/dojotoolkit/util/doh/runner.html?test=dojo/tests/module |
---|
57 | |
---|
58 | (Of course the host and path--localhost and dev/dojotoolkit/util in the example--will depend on how you've configured |
---|
59 | your test environment. |
---|
60 | |
---|
61 | DOH includes the following query parameters: |
---|
62 | |
---|
63 | test: |
---|
64 | a comma-separated-list of AMD module identifiers that contain the tests to load. |
---|
65 | |
---|
66 | testUrl: |
---|
67 | deprecated alias for test |
---|
68 | |
---|
69 | paths: |
---|
70 | a semicolon-separated-list of comma-separated-pairs of (module-identifier -> path-prefix) to provide to the loader's |
---|
71 | path configuration property. |
---|
72 | |
---|
73 | registerModulePath: |
---|
74 | deprecated alias for paths |
---|
75 | |
---|
76 | boot: |
---|
77 | a comma-separated-list of Javascript resources to script inject to bootstrap DOH. Defaults to "../../dojo/dojo.js", |
---|
78 | which causes DOH to use the dojo AMD loader. You may use this parameter to provide and alternate loader. |
---|
79 | |
---|
80 | dojoUrl: |
---|
81 | deprecated alias for boot |
---|
82 | |
---|
83 | async: |
---|
84 | If provided, instructs the dojo loader to operate in async mode. |
---|
85 | |
---|
86 | breakOnError: |
---|
87 | If provided, instructs DOH to break into the debugger upon an error. |
---|
88 | |
---|
89 | |
---|
90 | About Hard Dojo Dependency |
---|
91 | ========================== |
---|
92 | |
---|
93 | As of v1.7 DOH depends on dojo base via AMD define dependency lists. If this causes you concern, you |
---|
94 | may sandbox dojo by setting dojoConfig.scopeMap.dojo to falsy which will result in *not* publishing |
---|
95 | dojo to the global namespace. Alternatively, you may provide a custom library that includes the |
---|
96 | part of the dojo base API used by DOH and map the AMD module identifier "dojo" to this custom library. |
---|
97 | However, we know of no good reason to follow either of these paths. |
---|