| OLD | NEW |
| (Empty) |
| 1 # Building and Testing AngularDart | |
| 2 | |
| 3 This document describes how to set up your development environment to build and
test AngularDart, and | |
| 4 explains the basic mechanics of using `git`, `node`, and `npm`. | |
| 5 | |
| 6 See the [contributing guidelines](https://github.com/angular/angular.dart/blob/m
aster/CONTRIBUTING.md) for how to contribute your own code to | |
| 7 | |
| 8 1. [Prerequisite Software](#prerequisite-software) | |
| 9 2. [Getting the Sources](#getting-the-sources) | |
| 10 3. [Environment Variable Setup](#environment-variable-setup) | |
| 11 4. [Installing NPM Modules and Dart Packages](#installing-npm-modules-and-dart-p
ackages) | |
| 12 5. [Running Tests Locally](#running-tests-locally) | |
| 13 6. [Continuous Integration using Travis](#continuous-integration-using-travis) | |
| 14 | |
| 15 ## Prerequisite Software | |
| 16 | |
| 17 Before you can build and test AngularDart, you must install and configure the | |
| 18 following products on your development machine: | |
| 19 | |
| 20 * [Dart](https://www.dartlang.org/): as can be expected, AngularDart requires | |
| 21 an installation of the Dart-SDK and Dartium (a version of | |
| 22 [Chromium](http://www.chromium.org) with native support for Dart through the | |
| 23 Dart VM). One of the **simplest** ways to get both is to install the **Dart | |
| 24 Editor bundle**, which includes the editor, sdk and Dartium. See the [Dart | |
| 25 tools download page for | |
| 26 instructions](https://www.dartlang.org/tools/download.html). | |
| 27 | |
| 28 * [Git](http://git-scm.com/) and/or the **Github app** (for | |
| 29 [Mac](http://mac.github.com/) or [Windows](http://windows.github.com/)): the | |
| 30 [Github Guide to Installing | |
| 31 Git](https://help.github.com/articles/set-up-git) is a good source of | |
| 32 information. | |
| 33 | |
| 34 * [Node.js](http://nodejs.org): We use Node to run a development web server, | |
| 35 run tests, and generate distributable files. We also use Node's Package | |
| 36 Manager (`npm`). Depending on your system, you can install Node either from | |
| 37 source or as a pre-packaged bundle. | |
| 38 | |
| 39 ## Getting the Sources | |
| 40 | |
| 41 Forking and Cloning the AngularDart repository: | |
| 42 | |
| 43 1. Login to your Github account or create one by following the instructions give
n [here](https://github.com/signup/free). | |
| 44 Afterwards. | |
| 45 2. [Fork](http://help.github.com/forking) the [main AngularDart repository](http
s://github.com/angular/angular.dart). | |
| 46 3. Clone your fork of the AngularDart repository and define an `upstream` remote
pointing back to the AngularDart repository that you forked in the first place: | |
| 47 | |
| 48 ```shell | |
| 49 # Clone your Github repository: | |
| 50 git clone git@github.com:<github username>/angular.dart.git | |
| 51 | |
| 52 # Go to the AngularDart directory: | |
| 53 cd angular.dart | |
| 54 | |
| 55 # Add the main AngularDart repository as an upstream remote to your repository: | |
| 56 git remote add upstream https://github.com/angular/angular.dart.git | |
| 57 ``` | |
| 58 | |
| 59 ## Environment Variable Setup | |
| 60 | |
| 61 | |
| 62 Define the environment variables listed below. These are mainly needed for the | |
| 63 test scripts. The notation shown here is for | |
| 64 [`bash`](http://www.gnu.org/software/bash/); adapt as appropriate for your | |
| 65 favorite shell. (Examples given below of possible values for initializing the | |
| 66 environment variables assume Mac OS X and that you have installed the Dart | |
| 67 Editor in the directory named by `$DART_EDITOR_DIR`. This is only for | |
| 68 illustrative purposes.) | |
| 69 | |
| 70 ```shell | |
| 71 # CHROME_BIN: path to a Chrome browser executable; e.g., | |
| 72 export CHROME_BIN="/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" | |
| 73 | |
| 74 # CHROME_CANARY_BIN: path to a Dartium browser executable; e.g., | |
| 75 export CHROME_CANARY_BIN="$DART_EDITOR_DIR/chromium/Chromium.app/Contents/MacOS/
Chromium" | |
| 76 ``` | |
| 77 **Note**: the `$CHROME_CANARY_BIN` environment variable is used by karma to run
your tests | |
| 78 in dartium instead of chromium. If you don't do this, the dart2js compile will m
ake the tests | |
| 79 run extremely slow since it has to wait for a full js compile each time. | |
| 80 | |
| 81 You should also add the Dart SDK `bin` directory to your path and/or define `DAR
T_SDK`; e.g. | |
| 82 | |
| 83 ```shell | |
| 84 # DART_SDK: path to a Dart SDK directory; e.g., | |
| 85 export DART_SDK="$DART_EDITOR_DIR/dart-sdk" | |
| 86 | |
| 87 # Update PATH to include the Dart SDK bin directory | |
| 88 PATH+=":$DART_SDK/bin" | |
| 89 ``` | |
| 90 ## Installing NPM Modules and Dart Packages | |
| 91 | |
| 92 Next, install the modules and packages needed to run AngularDart tests: | |
| 93 | |
| 94 ```shell | |
| 95 # Install node.js dependencies: | |
| 96 npm install | |
| 97 | |
| 98 # Install karma onto your command line (optional) | |
| 99 npm install karma -g | |
| 100 | |
| 101 # Install Dart packages | |
| 102 pub install | |
| 103 ``` | |
| 104 | |
| 105 ## Running Tests Locally | |
| 106 | |
| 107 NOTE: scripts are being written to embody the following steps. | |
| 108 | |
| 109 To run base tests: | |
| 110 | |
| 111 ```shell | |
| 112 # Source a script to define yet more environment variables | |
| 113 . ./scripts/env.sh | |
| 114 | |
| 115 # Run io tests: | |
| 116 dart --checked test/io/all.dart | |
| 117 | |
| 118 # Run expression extractor tests: | |
| 119 scripts/test-expression-extractor.sh | |
| 120 | |
| 121 Run the Dart Analyzer: | |
| 122 ./scripts/analyze.sh | |
| 123 ``` | |
| 124 | |
| 125 To run Karma tests over Dartium, execute the following shell commands (which | |
| 126 will launch the Karma server): | |
| 127 | |
| 128 ```shell | |
| 129 . ./scripts/env.sh | |
| 130 node "node_modules/karma/bin/karma" start karma.conf \ | |
| 131 --reporters=junit,dots --port=8765 --runner-port=8766 \ | |
| 132 --browsers=Dartium | |
| 133 ``` | |
| 134 | |
| 135 In another shell window or tab, or from your favorite IDE, launch the Karma | |
| 136 tests proper by executing: | |
| 137 | |
| 138 ```shell | |
| 139 . ./scripts/env.sh | |
| 140 karma_run.sh | |
| 141 ``` | |
| 142 | |
| 143 **Note:**: If the dart analyzer fails with warnings, the tests will not run. | |
| 144 You can manually run the tests if this happens: | |
| 145 | |
| 146 ```shell | |
| 147 karma run --port=8765 | |
| 148 ``` | |
| 149 | |
| 150 ## Debugging | |
| 151 | |
| 152 In the dart editor you can configure a dartium launch target for the karma test
runner debug page. | |
| 153 The menu option is under Run > Manage Launches > Create new Dartium Launch. | |
| 154 | |
| 155 ``` | |
| 156 http://localhost:8765/debug.html | |
| 157 ``` | |
| 158 | |
| 159 If you want to only run a single test you can alter the test you wish to run by
changing `it` to `iit` | |
| 160 or `describe` to `ddescribe`. This will only run that individual test and make i
t much easier to debug. | |
| 161 | |
| 162 | |
| 163 ## Continuous Integration using Travis | |
| 164 | |
| 165 See the instructions given [here](https://github.com/angular/angular.dart/blob/m
aster/travis.md). | |
| 166 | |
| 167 ----- | |
| OLD | NEW |