diff --git a/.github/workflows/test-package.yml b/.github/workflows/test-package.yml
index 1cd8438..e47bf66 100644
--- a/.github/workflows/test-package.yml
+++ b/.github/workflows/test-package.yml
@@ -23,9 +23,9 @@
         sdk: [dev]
     steps:
       - uses: actions/checkout@v2
-      - uses: dart-lang/setup-dart@v0.1
+      - uses: dart-lang/setup-dart@v1.0
         with:
-          channel: ${{ matrix.sdk }}
+          sdk: ${{ matrix.sdk }}
       - id: install
         name: Install dependencies
         run: dart pub get
@@ -47,12 +47,12 @@
       matrix:
         # Add macos-latest and/or windows-latest if relevant for this package.
         os: [ubuntu-latest]
-        sdk: [dev]
+        sdk: [2.12.0, dev]
     steps:
       - uses: actions/checkout@v2
-      - uses: dart-lang/setup-dart@v0.1
+      - uses: dart-lang/setup-dart@v1.0
         with:
-          channel: ${{ matrix.sdk }}
+          sdk: ${{ matrix.sdk }}
       - id: install
         name: Install dependencies
         run: dart pub get
diff --git a/CHANGELOG.md b/CHANGELOG.md
index d43d717..c7256ac 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,5 @@
+## 2.5.1-dev
+
 ## 2.5.0
 
 * Stable release for null safety.
diff --git a/pubspec.yaml b/pubspec.yaml
index 3c8dd95..e24947d 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,11 +1,11 @@
 name: async
-version: 2.5.0
+version: 2.5.1-dev
 
 description: Utility functions and classes related to the 'dart:async' library.
-homepage: https://www.github.com/dart-lang/async
+repository: https://github.com/dart-lang/async
 
 environment:
-  sdk: ">=2.12.0-0 <3.0.0"
+  sdk: ">=2.12.0 <3.0.0"
 
 dependencies:
   collection: ^1.15.0
diff --git a/test/result/result_captureAll_test.dart b/test/result/result_captureAll_test.dart
index b992e1f..c00395a 100644
--- a/test/result/result_captureAll_test.dart
+++ b/test/result/result_captureAll_test.dart
@@ -9,7 +9,9 @@
 import 'package:test/test.dart';
 
 final someStack = StackTrace.current;
+
 Result<int> res(int n) => Result<int>.value(n);
+
 Result err(n) => ErrorResult('$n', someStack);
 
 /// Helper function creating an iterable of futures.
@@ -63,11 +65,11 @@
       var cs = List.generate(3, (_) => Completer<int>());
       var all = Result.captureAll<int>(cs.map((c) => c.future));
       expect(all, completion([res(1), res(2), err(3)]));
-      await 0;
+      await _microTask();
       cs[0].complete(1);
-      await 0;
+      await _microTask();
       cs[1].complete(2);
-      await 0;
+      await _microTask();
       cs[2].completeError('3', someStack);
     });
 
@@ -75,11 +77,11 @@
       var cs = List.generate(3, (_) => Completer<int>());
       var all = Result.captureAll<int>(cs.map((c) => c.future));
       expect(all, completion([res(1), res(2), err(3)]));
-      await 0;
+      await _microTask();
       cs[0].complete(1);
-      await 0;
+      await _microTask();
       cs[2].completeError('3', someStack);
-      await 0;
+      await _microTask();
       cs[1].complete(2);
     });
 
@@ -87,11 +89,11 @@
       var cs = List.generate(3, (_) => Completer<int>());
       var all = Result.captureAll<int>(cs.map((c) => c.future));
       expect(all, completion([res(1), res(2), err(3)]));
-      await 0;
+      await _microTask();
       cs[1].complete(2);
-      await 0;
+      await _microTask();
       cs[0].complete(1);
-      await 0;
+      await _microTask();
       cs[2].completeError('3', someStack);
     });
 
@@ -99,11 +101,11 @@
       var cs = List.generate(3, (_) => Completer<int>());
       var all = Result.captureAll<int>(cs.map((c) => c.future));
       expect(all, completion([res(1), res(2), err(3)]));
-      await 0;
+      await _microTask();
       cs[1].complete(2);
-      await 0;
+      await _microTask();
       cs[2].completeError('3', someStack);
-      await 0;
+      await _microTask();
       cs[0].complete(1);
     });
 
@@ -111,11 +113,11 @@
       var cs = List.generate(3, (_) => Completer<int>());
       var all = Result.captureAll<int>(cs.map((c) => c.future));
       expect(all, completion([res(1), res(2), err(3)]));
-      await 0;
+      await _microTask();
       cs[2].completeError('3', someStack);
-      await 0;
+      await _microTask();
       cs[0].complete(1);
-      await 0;
+      await _microTask();
       cs[1].complete(2);
     });
 
@@ -123,11 +125,11 @@
       var cs = List.generate(3, (_) => Completer<int>());
       var all = Result.captureAll<int>(cs.map((c) => c.future));
       expect(all, completion([res(1), res(2), err(3)]));
-      await 0;
+      await _microTask();
       cs[2].completeError('3', someStack);
-      await 0;
+      await _microTask();
       cs[1].complete(2);
-      await 0;
+      await _microTask();
       cs[0].complete(1);
     });
 
@@ -150,7 +152,7 @@
       });
       completeFunctions.shuffle(rnd);
       for (var i = 0; i < n; i++) {
-        await 0;
+        await _microTask();
         completeFunctions[i]();
       }
     });
@@ -187,3 +189,5 @@
     });
   });
 }
+
+Future<void> _microTask() => Future.microtask(() {});
