diff --git a/.travis.yml b/.travis.yml
index 6778d50..2ebbac6 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -17,6 +17,7 @@
 env:
   global:
     - SPLIT=`which gsplit || which split`
+    - _PUB_TEST_SNAPSHOT="`pwd`/.dart_tool//pub.dart.snapshot.dart2"
 
 dart_task:
   - test: --preset travis `$SPLIT -n l/1/7 .dart_tool/test_files`
@@ -32,9 +33,8 @@
 # Create a snapshot to improve startup time. Tests will automatically use this
 # snapshot if it's available.
 before_script:
-  - dart --snapshot=bin/pub.dart.snapshot.dart2 bin/pub.dart
+  - dart --snapshot="$_PUB_TEST_SNAPSHOT" bin/pub.dart
   - find test -name "*_test\\.dart" | sort > .dart_tool/test_files
-  -
 
 # Only building these branches means that we don't run two builds for each pull
 # request.
diff --git a/test/test_pub.dart b/test/test_pub.dart
index a5a2d11..c79319c 100644
--- a/test/test_pub.dart
+++ b/test/test_pub.dart
@@ -349,14 +349,19 @@
     dartBin = p.absolute(dartBin);
   }
 
-  // If there's a snapshot available, use it. The user is responsible for
-  // ensuring this is up-to-date..
+  var pubPath = p.absolute(p.join(pubRoot, 'bin/pub.dart'));
+
+  // If there's a snapshot for "pub" available we use it. If the snapshot is
+  // out-of-date local source the tests will be useless, therefore it is
+  // recommended to use a temporary file with a unique name for each test run.
+  // Note: running tests without a snapshot is significantly slower.
   //
   // TODO(nweiz): When the test runner supports plugins, create one to
   // auto-generate the snapshot before each run.
-  var pubPath = p.absolute(p.join(pubRoot, 'bin/pub.dart'));
-  var snapshotPath = '$pubPath.snapshot.dart2';
-  if (fileExists(snapshotPath)) pubPath = snapshotPath;
+  final snapshotPath = Platform.environment['_PUB_TEST_SNAPSHOT'] ?? '';
+  if (snapshotPath.isNotEmpty && fileExists(snapshotPath)) {
+    pubPath = snapshotPath;
+  }
 
   var dartArgs = [await PackageResolver.current.processArgument];
   dartArgs..addAll([pubPath, '--verbose'])..addAll(args);
diff --git a/tool/test.sh b/tool/test.sh
index 9485558..c3005f1 100755
--- a/tool/test.sh
+++ b/tool/test.sh
@@ -3,21 +3,21 @@
 ### Test wrapper script.
 # Many of the integration tests runs the `pub` command, this is slow if every
 # invocation requires the dart compiler to load all the sources. This script
-# will create a `bin/pub.dart.snapshot.dart2` which the tests can utilize.
+# will create a `pub.XXX.dart.snapshot.dart2` which the tests can utilize.
 # After creating the snapshot this script will forward arguments to
 # `pub run test`, and ensure that the snapshot is deleted after tests have been
 # run.
-#
-# Notice that it is critical that this file is deleted before running tests
-# again, as tests otherwise won't load the pub sources.
 
 # Find folder containing this script.
 DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
 ROOT="$DIR/.."
 
+# PATH to a snapshot file.
+PUB_SNAPSHOT_FILE=`tempfile -p 'pub.' -s '.dart.snapshot.dart2'`;
+
 # Always remove the snapshot
 function cleanup {
-  rm -f "$ROOT/bin/pub.dart.snapshot.dart2"
+  rm -f "$PUB_SNAPSHOT_FILE";
 }
 trap cleanup EXIT;
 
@@ -25,10 +25,11 @@
 echo 'Building snapshot'
 (
   cd "$ROOT/";
-  rm -f "$ROOT/bin/pub.dart.snapshot.dart2"
-  dart --snapshot=bin/pub.dart.snapshot.dart2 bin/pub.dart
+  rm -f "$PUB_SNAPSHOT_FILE"
+  dart --snapshot="$PUB_SNAPSHOT_FILE" bin/pub.dart
 )
 
 # Run tests
 echo 'Running tests'
+export _PUB_TEST_SNAPSHOT="$PUB_SNAPSHOT_FILE"
 pub run test -r expanded "$@"
