OLD | NEW |
1 `test` provides a standard way of writing and running tests in Dart. | 1 `test` provides a standard way of writing and running tests in Dart. |
2 | 2 |
3 ## Writing Tests | 3 ## Writing Tests |
4 | 4 |
5 Tests are specified using the top-level [`test()`][test] function, and test | 5 Tests are specified using the top-level [`test()`][test] function, and test |
6 assertions are made using [`expect()`][expect]: | 6 assertions are made using [`expect()`][expect]: |
7 | 7 |
8 [test]: http://www.dartdocs.org/documentation/test/latest/index.html#test/test@i
d_test | 8 [test]: http://www.dartdocs.org/documentation/test/latest/index.html#test/test@i
d_test |
9 [expect]: http://www.dartdocs.org/documentation/test/latest/index.html#test/test
@id_expect | 9 [expect]: http://www.dartdocs.org/documentation/test/latest/index.html#test/test
@id_expect |
10 | 10 |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
73 }); | 73 }); |
74 } | 74 } |
75 ``` | 75 ``` |
76 | 76 |
77 ## Running Tests | 77 ## Running Tests |
78 | 78 |
79 A single test file can be run just using `dart path/to/test.dart`. | 79 A single test file can be run just using `dart path/to/test.dart`. |
80 | 80 |
81  | 81  |
82 | 82 |
83 Many tests can be run at a time using `pub run test:test path/to/dir`. | 83 Many tests can be run at a time using `pub run test:test path/to/dir` (on Dart |
| 84 1.10, this can be shortened to `pub run test path/to/dir`). |
84 | 85 |
85  | 86  |
86 | 87 |
87 `test` considers any file that ends with `_test.dart` to be a test file. If | 88 `test` considers any file that ends with `_test.dart` to be a test file. If |
88 you don't pass any paths, it will run all the test files in your `test/` | 89 you don't pass any paths, it will run all the test files in your `test/` |
89 directory, making it easy to test your entire application at once. | 90 directory, making it easy to test your entire application at once. |
90 | 91 |
91 By default, tests are run in the Dart VM, but you can run them in the browser as | 92 By default, tests are run in the Dart VM, but you can run them in the browser as |
92 well by passing `pub run test:test -p chrome path/to/test.dart`. | 93 well by passing `pub run test:test -p chrome path/to/test.dart`. |
93 `test` will take care of starting the browser and loading the tests, and all | 94 `test` will take care of starting the browser and loading the tests, and all |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
128 Platform selectors can contain identifiers, parentheses, and operators. When | 129 Platform selectors can contain identifiers, parentheses, and operators. When |
129 loading a test, each identifier is set to `true` or `false` based on the current | 130 loading a test, each identifier is set to `true` or `false` based on the current |
130 platform, and the test is only loaded if the platform selector returns `true`. | 131 platform, and the test is only loaded if the platform selector returns `true`. |
131 The operators `||`, `&&`, `!`, and `? :` all work just like they do in Dart. The | 132 The operators `||`, `&&`, `!`, and `? :` all work just like they do in Dart. The |
132 valid identifiers are: | 133 valid identifiers are: |
133 | 134 |
134 * `vm`: Whether the test is running on the command-line Dart VM. | 135 * `vm`: Whether the test is running on the command-line Dart VM. |
135 | 136 |
136 * `chrome`: Whether the test is running on Google Chrome. | 137 * `chrome`: Whether the test is running on Google Chrome. |
137 | 138 |
| 139 * `firefox`: Whether the test is running on Mozilla Firefox. |
| 140 |
138 * `dart-vm`: Whether the test is running on the Dart VM in any context. For now | 141 * `dart-vm`: Whether the test is running on the Dart VM in any context. For now |
139 this is identical to `vm`, but it will also be true for Dartium in the future. | 142 this is identical to `vm`, but it will also be true for Dartium in the future. |
140 It's identical to `!js`. | 143 It's identical to `!js`. |
141 | 144 |
142 * `browser`: Whether the test is running in any browser. | 145 * `browser`: Whether the test is running in any browser. |
143 | 146 |
144 * `js`: Whether the test has been compiled to JS. This is identical to | 147 * `js`: Whether the test has been compiled to JS. This is identical to |
145 `!dart-vm`. | 148 `!dart-vm`. |
146 | 149 |
147 * `blink`: Whether the test is running in a browser that uses the Blink | 150 * `blink`: Whether the test is running in a browser that uses the Blink |
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
270 ```shell | 273 ```shell |
271 $ pub serve | 274 $ pub serve |
272 Loading source assets... | 275 Loading source assets... |
273 Loading test/pub_serve transformers... | 276 Loading test/pub_serve transformers... |
274 Serving my_app web on http://localhost:8080 | 277 Serving my_app web on http://localhost:8080 |
275 Serving my_app test on http://localhost:8081 | 278 Serving my_app test on http://localhost:8081 |
276 Build completed successfully | 279 Build completed successfully |
277 ``` | 280 ``` |
278 | 281 |
279 In this case, the port is `8081`. In another terminal, pass this port to | 282 In this case, the port is `8081`. In another terminal, pass this port to |
280 `--pub-serve` and otherwise invoke `pub run test` as normal: | 283 `--pub-serve` and otherwise invoke `pub run test:test` as normal: |
281 | 284 |
282 ```shell | 285 ```shell |
283 $ pub run test --pub-serve=8081 -p chrome | 286 $ pub run test:test --pub-serve=8081 -p chrome |
284 "pub serve" is compiling test/my_app_test.dart... | 287 "pub serve" is compiling test/my_app_test.dart... |
285 "pub serve" is compiling test/utils_test.dart... | 288 "pub serve" is compiling test/utils_test.dart... |
286 00:00 +42: All tests passed! | 289 00:00 +42: All tests passed! |
287 ``` | 290 ``` |
OLD | NEW |