Add coveralls and travis support.

Fix badge.
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..e110e4e
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,6 @@
+language: dart
+sudo: false
+dart:
+  - stable
+  - dev
+script: ./tool/travis.sh
diff --git a/README.md b/README.md
index 628a634..694c0dc 100644
--- a/README.md
+++ b/README.md
@@ -1,3 +1,6 @@
+[![Build Status](https://travis-ci.org/matanlurey/file.svg?branch=master)](https://travis-ci.org/matanlurey/file)
+[![Coverage Status](https://coveralls.io/repos/github/matanlurey/file/badge.svg?branch=master)](https://coveralls.io/github/matanlurey/file?branch=master)
+
 # File
 
 A generic file system abstraction for Dart.
diff --git a/tool/test_all_for_coverage.dart b/tool/test_all_for_coverage.dart
new file mode 100644
index 0000000..2aae2a5
--- /dev/null
+++ b/tool/test_all_for_coverage.dart
@@ -0,0 +1,9 @@
+library file.tool.test_all_for_coverage;
+
+import 'package:test/test.dart';
+
+import '../test/in_memory_test.dart' as in_memory_test;
+
+void main() {
+  group('(in_memory_test.dart)', in_memory_test.main);
+}
diff --git a/tool/travis.sh b/tool/travis.sh
new file mode 100755
index 0000000..fe775ab
--- /dev/null
+++ b/tool/travis.sh
@@ -0,0 +1,19 @@
+#!/bin/bash
+
+# Fast fail the script on failures.
+set -e
+
+# Skipping this until at least we have a dev release that aligns with dart_style version
+# $(dirname -- "$0")/ensure_dartfmt.sh
+
+# Run the tests.
+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 \
+    --retry 2 \
+    --exclude-test-files \
+    tool/test_all_for_coverage.dart
+fi