diff --git a/.travis.yml b/.travis.yml
index e110e4e..93b8adb 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,6 +1,14 @@
 language: dart
 sudo: false
 dart:
-  - stable
   - dev
-script: ./tool/travis.sh
+  - stable
+  - 1.23.0
+  - 1.22.1
+cache:
+  directories:
+    - $HOME/.pub-cache
+dart_task:
+  - test: --platform vm
+  - dartfmt
+  - dartanalyzer
diff --git a/CHANGELOG.md b/CHANGELOG.md
index a86aabd..e725bda 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -68,7 +68,7 @@
 * The preferred top-level method is now `createStaticHandler`. `getHandler` is deprecated.
 * Set `content-type` header if the mime type of the requested file can be determined from the file extension.
 * Respond with `304-Not modified` against `IF-MODIFIED-SINCE` request header.
-* Better error when provided a non-existant `fileSystemPath`.
+* Better error when provided a non-existent `fileSystemPath`.
 * Added `example/example_server.dart`.
 
 ## 0.1.1+1
diff --git a/README.md b/README.md
index ffe0e26..b0bf77d 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,6 @@
 `shelf_static` is a `Handler` for the Dart `shelf` package.
 
 [![Build Status](https://travis-ci.org/dart-lang/shelf_static.svg?branch=master)](https://travis-ci.org/dart-lang/shelf_static?branch=master)
-[![Coverage Status](https://coveralls.io/repos/dart-lang/shelf_static/badge.svg?branch=master&service=github)](https://coveralls.io/github/dart-lang/shelf_static?branch=master)
 
 ### Example
 ```dart
diff --git a/.analysis_options b/analysis_options.yaml
similarity index 100%
rename from .analysis_options
rename to analysis_options.yaml
diff --git a/example/example_server.dart b/example/example_server.dart
index 1233eef..087b421 100644
--- a/example/example_server.dart
+++ b/example/example_server.dart
@@ -60,6 +60,7 @@
       abbr: 'f',
       defaultsTo: false,
       negatable: false,
-      help: 'List the files in the source directory instead of servering the default document - "$_defaultDoc".');
+      help: 'List the files in the source directory instead of serving the '
+          'default document - "$_defaultDoc".');
 
 const _defaultDoc = 'index.html';
diff --git a/lib/src/directory_listing.dart b/lib/src/directory_listing.dart
index 8339fb9..a391a52 100644
--- a/lib/src/directory_listing.dart
+++ b/lib/src/directory_listing.dart
@@ -77,9 +77,12 @@
     controller.add(encoding.encode(string));
   }
 
-  String heading = path.relative(dirPath, from: fileSystemPath);
-  if (heading == '.') heading = '/';
-  else heading = '/$heading/';
+  var heading = path.relative(dirPath, from: fileSystemPath);
+  if (heading == '.') {
+    heading = '/';
+  } else {
+    heading = '/$heading/';
+  }
 
   add(_getHeader(sanitizer.convert(heading)));
   new Directory(dirPath).list().listen((FileSystemEntity entity) {
diff --git a/lib/src/static_handler.dart b/lib/src/static_handler.dart
index a2e3e71..9f67de9 100644
--- a/lib/src/static_handler.dart
+++ b/lib/src/static_handler.dart
@@ -64,7 +64,7 @@
 
     var entityType = FileSystemEntity.typeSync(fsPath, followLinks: true);
 
-    File file = null;
+    File file;
 
     if (entityType == FileSystemEntityType.FILE) {
       file = new File(fsPath);
@@ -115,14 +115,15 @@
 
     String contentType;
     if (useHeaderBytesForContentType) {
-      var length =
-          math.min(contentTypeResolver.magicNumbersMaxLength, file.lengthSync());
+      var length = math.min(
+          contentTypeResolver.magicNumbersMaxLength, file.lengthSync());
 
       var byteSink = new ByteAccumulatorSink();
 
       await file.openRead(0, length).listen(byteSink.add).asFuture();
 
-      contentType = contentTypeResolver.lookup(file.path, headerBytes: byteSink.bytes);
+      contentType =
+          contentTypeResolver.lookup(file.path, headerBytes: byteSink.bytes);
     } else {
       contentType = contentTypeResolver.lookup(file.path);
     }
diff --git a/test/alternative_root_test.dart b/test/alternative_root_test.dart
index 28ae4e8..4b7852d 100644
--- a/test/alternative_root_test.dart
+++ b/test/alternative_root_test.dart
@@ -20,12 +20,10 @@
     });
 
     d.file('root.txt', 'root txt').create();
-    d
-        .dir('files', [
+    d.dir('files', [
       d.file('test.txt', 'test txt content'),
       d.file('with space.txt', 'with space content')
-    ])
-        .create();
+    ]).create();
 
     currentSchedule.onComplete.schedule(() {
       d.defaultRoot = null;
diff --git a/test/basic_file_test.dart b/test/basic_file_test.dart
index 97b5929..4511243 100644
--- a/test/basic_file_test.dart
+++ b/test/basic_file_test.dart
@@ -2,8 +2,9 @@
 // for details. All rights reserved. Use of this source code is governed by a
 // BSD-style license that can be found in the LICENSE file.
 
-import 'dart:io';
 import 'dart:convert';
+import 'dart:io';
+
 import 'package:http_parser/http_parser.dart';
 import 'package:mime/mime.dart' as mime;
 import 'package:path/path.dart' as p;
@@ -35,7 +36,8 @@
         r"OJE7pB/VXmF3CdseucmjxaAruR41Pl9p/Gbyoq5B9FeL2OR7zJ+3aC/X8QdQCyIArPs"
         r"HkQAAAABJRU5ErkJggg==";
 
-    var webpBytesContent = r"UklGRiQAAABXRUJQVlA4IBgAAAAwAQCdASoBAAEAAQAcJaQAA3AA/v3AgAA=";
+    var webpBytesContent =
+        r"UklGRiQAAABXRUJQVlA4IBgAAAAwAQCdASoBAAEAAQAcJaQAA3AA/v3AgAA=";
 
     d.dir('files', [
       d.file('test.txt', 'test txt content'),
@@ -226,8 +228,16 @@
     test('header_bytes_test_webp should be image/webp', () {
       schedule(() {
         final mime.MimeTypeResolver resolver = new mime.MimeTypeResolver();
-        resolver.addMagicNumber(<int>[0x52,0x49,0x46,0x46,0x00,0x00,0x00,0x00,0x57,0x45,0x42,0x50], "image/webp",
-                                mask: <int>[0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF]);
+        resolver.addMagicNumber(
+            <int>[
+              0x52, 0x49, 0x46, 0x46, 0x00, 0x00, //
+              0x00, 0x00, 0x57, 0x45, 0x42, 0x50
+            ],
+            "image/webp",
+            mask: <int>[
+              0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, //
+              0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF
+            ]);
         final dynamic handler = createStaticHandler(d.defaultRoot,
             useHeaderBytesForContentType: true, contentTypeResolver: resolver);
 
@@ -237,6 +247,5 @@
         });
       });
     });
-
   });
 }
diff --git a/test/default_document_test.dart b/test/default_document_test.dart
index 0ec133f..39943a4 100644
--- a/test/default_document_test.dart
+++ b/test/default_document_test.dart
@@ -23,12 +23,10 @@
 
     d.file('index.html', '<html></html>').create();
     d.file('root.txt', 'root txt').create();
-    d
-        .dir('files', [
+    d.dir('files', [
       d.file('index.html', '<html><body>files</body></html>'),
       d.file('with space.txt', 'with space content')
-    ])
-        .create();
+    ]).create();
 
     currentSchedule.onComplete.schedule(() {
       d.defaultRoot = null;
diff --git a/test/directory_listing_test.dart b/test/directory_listing_test.dart
index 93ce260..192691e 100644
--- a/test/directory_listing_test.dart
+++ b/test/directory_listing_test.dart
@@ -22,13 +22,11 @@
 
     d.file('index.html', '<html></html>').create();
     d.file('root.txt', 'root txt').create();
-    d
-        .dir('files', [
+    d.dir('files', [
       d.file('index.html', '<html><body>files</body></html>'),
       d.file('with space.txt', 'with space content'),
       d.dir('empty subfolder', []),
-    ])
-        .create();
+    ]).create();
 
     currentSchedule.onComplete.schedule(() {
       d.defaultRoot = null;
@@ -77,8 +75,10 @@
 
         return makeRequest(handler, '/files/empty subfolder').then((response) {
           expect(response.statusCode, HttpStatus.MOVED_PERMANENTLY);
-          expect(response.headers, containsPair(HttpHeaders.LOCATION,
-              'http://localhost/files/empty%20subfolder/'));
+          expect(
+              response.headers,
+              containsPair(HttpHeaders.LOCATION,
+                  'http://localhost/files/empty%20subfolder/'));
         });
       });
     });
diff --git a/test/get_handler_test.dart b/test/get_handler_test.dart
index c957001..bdb150b 100644
--- a/test/get_handler_test.dart
+++ b/test/get_handler_test.dart
@@ -20,12 +20,10 @@
     });
 
     d.file('root.txt', 'root txt').create();
-    d
-        .dir('files', [
+    d.dir('files', [
       d.file('test.txt', 'test txt content'),
       d.file('with space.txt', 'with space content')
-    ])
-        .create();
+    ]).create();
 
     currentSchedule.onComplete.schedule(() {
       d.defaultRoot = null;
diff --git a/test/symbolic_link_test.dart b/test/symbolic_link_test.dart
index 4a655d6..ad2b747 100644
--- a/test/symbolic_link_test.dart
+++ b/test/symbolic_link_test.dart
@@ -20,7 +20,9 @@
       });
     });
 
-    d.dir('originals', [d.file('index.html', '<html></html>'),]).create();
+    d.dir('originals', [
+      d.file('index.html', '<html></html>'),
+    ]).create();
 
     d.dir('alt_root').create();
 
diff --git a/test/test_util.dart b/test/test_util.dart
index 51652e5..ce54dce 100644
--- a/test/test_util.dart
+++ b/test/test_util.dart
@@ -53,9 +53,9 @@
     return datesEqualToSecond(_target, item);
   }
 
-  Description describe(Description descirption) => descirption.add(
-      'Must be at the same moment as $_target with resolution '
-      'to the second.');
+  Description describe(Description description) =>
+      description.add('Must be at the same moment as $_target with resolution '
+          'to the second.');
 }
 
 bool datesEqualToSecond(DateTime d1, DateTime d2) {
diff --git a/tool/travis.sh b/tool/travis.sh
deleted file mode 100755
index 0f7c725..0000000
--- a/tool/travis.sh
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/bin/bash
-
-# Fast fail the script on failures.
-set -e
-
-pub run test
-
-# Install dart_coveralls; gather and send coverage data.
-if [ "$COVERALLS_TOKEN" ] && [ "$TRAVIS_DART_VERSION" = "stable" ]; then
-  pub global activate dart_coveralls
-  pub global run dart_coveralls report \
-    --exclude-test-files \
-    --log-level warning \
-    test/test_all.dart
-fi
