Fix a VM test loading bug.

We weren't properly converting a path to URL format, which mostly broke
Windows but could also break other operating systems if weird characters
were in the path.

See #277

R=kevmoo@google.com

Review URL: https://codereview.chromium.org//1196483002.
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 32ae872..294cbfa 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,4 +1,4 @@
-## 0.12.4
+## 0.12.3+2
 
 * Improve the display of syntax errors in VM tests.
 
@@ -6,6 +6,9 @@
 
 [Firefox bug]: https://bugzilla.mozilla.org/show_bug.cgi?id=548397
 
+* Fix a bug where VM tests would be loaded from the wrong URLs on Windows (or in
+  special circumstances on other operating systems).
+
 ## 0.12.3+1
 
 * Fix a bug that caused the test runner to crash on Windows because symlink
diff --git a/lib/src/runner/loader.dart b/lib/src/runner/loader.dart
index 9d3885d..abd81a0 100644
--- a/lib/src/runner/loader.dart
+++ b/lib/src/runner/loader.dart
@@ -182,8 +182,8 @@
     var isolate;
     try {
       if (_pubServeUrl != null) {
-        var url = _pubServeUrl.resolve(
-            p.relative(path, from: 'test') + '.vm_test.dart');
+        var url = _pubServeUrl.resolveUri(
+            p.toUri(p.relative(path, from: 'test') + '.vm_test.dart'));
 
         // TODO(nweiz): Remove new Future.sync() once issue 23498 has been fixed
         // in two stable versions.
diff --git a/pubspec.yaml b/pubspec.yaml
index 39da255..aeae550 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,5 +1,5 @@
 name: test
-version: 0.12.4-dev
+version: 0.12.3+2
 author: Dart Team <misc@dartlang.org>
 description: A library for writing dart unit tests.
 homepage: https://github.com/dart-lang/test