angular_test 1.0.1

  • Installing
  • Versions
  • 92

Pub package

Testing infrastructure and runner for AngularDart, used with the test package.

Documentation and examples:

Additional resources:


angular_test is both a framework for writing tests for AngularDart components and a test runner that delegates to pub serve and pub run test to run component tests using the AOT compiler.

Note: angular_test does not function in reflective mode.

Here's an example of an AngularDart test:

@Tags(const ['aot'])
import 'dart:html';

import 'package:angular/angular.dart';
import 'package:angular_test/angular_test.dart';
import 'package:test/test.dart';

void main() {

  test('should render "Hello World"', () async {
    final testBed = new NgTestBed<HelloWorldComponent>();
    final testFixture = await testBed.create();
    expect(testFixture.text, 'Hello World');
    await testFixture.update((c) => = 'Universe');
    expect(testFixture.text, 'Hello Universe');

@Component(selector: 'test', template: 'Hello {{name}}')
class HelloWorldComponent {
  String name = 'World';

To use angular_test, configure your package's pubspec.yaml as follows:

  # Run the code generator on the entire package.
  - angular/transform/codegen

  # Run the reflection remover on tests that have AOT enabled.
  - angular/transform/reflection_remover:
          - test/test_using_angular_test.dart

  # Allow test to proxy-load files so we can run AOT tests with pub serve.
  - test/pub_serve:
      $include: test/**_test.dart

To run tests, use pub run angular_test. It automatically runs pub serve to run code generation (transformers) and pub run test to run browser tests on anything tagged with 'aot'. Also declare a specific browser test platform, as described in the test package description; dartium and content-shell are the most common choices. Here's an example of running tests using the content shell:

pub run angular_test --test-arg=--tags=aot --test-arg=--platform=content-shell


The angular_test script can accept the following options:

--package              What directory containing a pub package to run tests in
                       (defaults to CWD)

-v, --[no-]verbose     Whether to display output of "pub serve" while running tests
    --help             Show usage
    --port             What port to use for pub serve.

                       **DEPRECATED**: Use --serve-arg=--port=.... If this is
                       not specified, and --serve-arg=--port is not specified, then
                       defaults to a value of "0" (or random port).

-S, --serve-arg        Pass an additional argument=value to `pub serve`

                       Example use --serve-arg=--mode=release

-t, --run-test-flag    What flag(s) to include when running "pub run test".
                       In order to have a fast test cycle, we only want to run
                       tests that have Angular compilation required (all the ones
                       created using this package do).

                       **DEPRECATED**: Use --test-arg=--tags=... instead

-p, --platform         What platform(s) to pass to `pub run test`.

                       **DEPRECATED**: Use --test-arg=--platform=... instead

-n, --name             A substring of the name of the test to run.
                       Regular expression syntax is supported.
                       If passed multiple times, tests must match all substrings.

                       **DEPRECATED**: Use --test-arg=--name=... instead

-N, --plain-name       A plain-text substring of the name of the test to run.
                       If passed multiple times, tests must match all substrings.

                       **DEPRECATED**: Use --test-arg=--plain-name=... instead

-T, --test-arg         Pass an additional argument=value to `pub run test`

                       Example: --test-arg=--name=ngIf



  • Remove dependency on angular_router.


Breaking Changes & Deprecations

  • Throws in bootstrapping if the root component does not use default change detection. AngularDart does not support OnPush or other change detection strategies on the root component.

  • Pub serve now defaults to a random unused port (instead of 8080) and --port is deprecated. Going forward the supported way to supply this argument is via --serve-arg:

$ pub run angular_test --serve-arg=port=1234
  • Option --run-test-flag (-t) is now deprecated, and no longer has a default value of aot. Tags are still highly encouraged in order to have faster compilation times! Use --test-arg instead:
$ pub run angular_test --test-arg=--tags=aot
  • Option --platform (-p) is now Deprecated, and no longer has a default value of content-shell, which was not always installed on host machines. Instead use --test-arg:
$ pub run angular_test --test-arg=--platform=content-shell
  • Option --name (-n) and --simple-name (-N) are also deprecated. Use --test-arg=--name= and --test-arg=--simple-name= instead.

  • Changes to compatibility.dart might not be considered in future semver updates, and it highly suggested you don't use these APIs for any new code.

  • Change NgTestFixture.update to have a single optional parameter


  • Add assertOnlyInstance to fixture to remove some boilerplate around testing the state of a instance. Only use to test state, not to update it.

  • Added --serve-arg and --test-arg, which both support multiple arguments in order to have better long-term support for proxying to both pub serve and pub run test without frequent changes to this package. For example to use the [DartDevCompiler (dartdevc)]:

$ pub run angular_test --serve-arg=web-compiler=dartdevc
  • Add support for setting a custom PageLoader factory:
testBed = testBed.setPageLoader(
  (element) => new CustomPageLoader(...),
  • Add support for query and queryAll to NgTestFixture. This works similar to the update command, but is called back with either a single or multiple child component instances to interact with or run expectations against:
// Assert we have 3 instances of <child>.
await fixture.queryAll(
  (el) => el.componentInstance is ChildComponent,
  (children) {
    expect(children, hasLength(3));
  • Add built-in support for package:pageloader:
final fixture = await new NgTestBed<TestComponent>().create();
final pageObject = await fixture.getPageObject/*<ClickCounterPO>*/(
expect(await pageObject.button.visibleText, 'Click count: 0');
expect(await pageObject.button.visibleText, 'Click count: 1');


  • Workaround for pub {serve|build} hanging on angular_test as a dependency.

  • Fixes a bug where the root was not removed from the DOM after disposed.

  • Added a missing dependency on package:func.

  • Properly fix support for windows by using pub.bat.

  • Replace all uses of generic comment with proper syntax.

  • Fixed a bug where activeTest was never set (and therefore disposed).

  • Fixed a bug where pub, not pub.bat, is run in windows.

  • Update pubspec.yaml so it properly lists AngularDart 3.0.0-alpha

  • Fix the executable so pub run angular_test can be used

  • Fix a serious generic type error when NgTestBed is forked

  • Fix a generic type error

  • Added compatibility.dart, a temporary API to some users migrate

Use this package as an executable

1. Install it

You can install the package from the command line:

$ pub global activate angular_test

2. Use it

The package has the following executables:

$ angular_test

Use this package as a library

1. Depend on it

Add this to your package's pubspec.yaml file:

  angular_test: "^1.0.1"

2. Install it

You can install packages from the command line:

with pub:

$ pub get

Alternatively, your editor might support pub get. Check the docs for your editor to learn more.

3. Import it

Now in your Dart code, you can use:

      import 'package:angular_test/angular_test.dart';
Version Uploaded Documentation Archive
1.0.1 Sep 25, 2017 Go to the documentation of angular_test 1.0.1 Download angular_test 1.0.1 archive
1.0.0 Aug 30, 2017 Go to the documentation of angular_test 1.0.0 Download angular_test 1.0.0 archive
2.0.0-alpha+13 Jun 15, 2018 Go to the documentation of angular_test 2.0.0-alpha+13 Download angular_test 2.0.0-alpha+13 archive
2.0.0-alpha+12 Jun 5, 2018 Go to the documentation of angular_test 2.0.0-alpha+12 Download angular_test 2.0.0-alpha+12 archive
2.0.0-alpha+11 May 24, 2018 Go to the documentation of angular_test 2.0.0-alpha+11 Download angular_test 2.0.0-alpha+11 archive
2.0.0-alpha+10 May 17, 2018 Go to the documentation of angular_test 2.0.0-alpha+10 Download angular_test 2.0.0-alpha+10 archive
2.0.0-alpha+9 Apr 23, 2018 Go to the documentation of angular_test 2.0.0-alpha+9 Download angular_test 2.0.0-alpha+9 archive
2.0.0-alpha+8 Apr 10, 2018 Go to the documentation of angular_test 2.0.0-alpha+8 Download angular_test 2.0.0-alpha+8 archive
2.0.0-alpha+7 Mar 29, 2018 Go to the documentation of angular_test 2.0.0-alpha+7 Download angular_test 2.0.0-alpha+7 archive
2.0.0-alpha+6 Mar 16, 2018 Go to the documentation of angular_test 2.0.0-alpha+6 Download angular_test 2.0.0-alpha+6 archive

All 26 versions...


We analyzed this package on Jun 19, 2018, and provided a score, details, and suggestions below. Analysis was completed with status completed using:

  • Dart: 2.0.0-dev.63.0
  • pana: 0.11.3


Describes how popular the package is relative to other packages. [more]
93 / 100
Code health derived from static analysis. [more]
99 / 100
Reflects how tidy and up-to-date the package is. [more]
79 / 100
Overall score:
Weighted score of the above. [more]
Learn more about scoring.


Detected platforms: unsure


  • Fix platform conflicts.

  • Fix analysis and formatting issues.

    Analysis or formatting checks reported 1 error 2 hints.

    Make sure that the imported libraries are not in conflict. Detected components: html, io, isolate. null

    Strong-mode analysis of lib/src/bin/runner.dart gave the following hint:

    line: 119 col: 22
    'SYSTEM_ENCODING' is deprecated and shouldn't be used.

    Similar analysis of the following files failed:

    • lib/src/util.dart (hint)
  • The description is too short.

    Add more detail about the package, what it does and what is its target use case. Try to write at least 60 characters.

  • Maintain an example.

    Create a short demo in the example/ directory to show how to use this package. Common file name patterns include: main.dart, example.dart or you could also use angular_test.dart.


Package Constraint Resolved Available
Direct dependencies
Dart SDK >=1.24.0 <2.0.0
angular ^4.0.0 4.0.0+2 5.0.0-alpha+15
ansicolor ^0.0.9 0.0.9 0.1.0
args ^0.13.7 0.13.7 1.4.3
collection ^1.14.0 1.14.10
func >=0.1.1 <2.0.0 1.0.0
logging ^0.11.3+1 0.11.3+1
matcher ^0.12.0+2 0.12.2+1 0.12.3
meta ^1.0.0 1.1.5
pageloader ^2.2.5 2.2.6 3.0.0-alpha
path ^1.4.1 1.6.1
stack_trace ^1.7.0 1.9.2
test ^0.12.17 0.12.37 1.0.0
Transitive dependencies
analyzer 0.30.0+4 0.32.1
angular_compiler 0.3.0+1 0.4.0-alpha+15
archive 1.0.33 2.0.0
async 2.0.7
barback 0.15.2+16
boolean_selector 1.0.3
build 0.11.2 0.12.6
build_barback 0.4.0+2 0.5.0+4
charcode 1.1.1
cli_util 0.1.3
code_builder 1.0.4 3.1.0
code_transformers 0.5.1+5
convert 2.0.1
crypto 2.0.5
csslib 0.14.4
dart_style 1.0.9+1 1.1.0
front_end 0.1.0-alpha.4.1 0.1.1
glob 1.1.5
html 0.13.3+1
http 0.11.3+16
http_multi_server 2.0.5
http_parser 3.1.2
intl 0.15.6
io 0.3.2+1
isolate 1.1.0 2.0.1
js 0.6.1
kernel 0.3.0-alpha.1.1 0.3.1
mime 0.9.6+1
multi_server_socket 1.0.1
node_preamble 1.4.2
package_config 1.0.3
package_resolver 1.0.3
plugin 0.2.0+2
pool 1.3.5
pub_semver 1.4.1
quiver 0.25.0 0.29.0+1
quiver_hashcode 1.0.0
shelf 0.7.3+1
shelf_packages_handler 1.0.3
shelf_static 0.2.7+1
shelf_web_socket 0.2.2+2
source_gen 0.7.5+1 0.8.2
source_map_stack_trace 1.1.4
source_maps 0.10.5
source_span 1.4.0
stream_channel 1.6.7+1
string_scanner 1.0.2
term_glyph 1.0.0
tuple 1.0.1
typed_data 1.1.5
unittest 0.11.7 0.12.4+1
utf 0.9.0+4
watcher 0.9.7+8
web_socket_channel 1.0.8
webdriver 1.2.3 2.0.0-beta
yaml 2.1.14