diff --git a/.gitignore b/.gitignore
index 3e2dd99..0a83cae 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,18 +1,4 @@
-# Don’t commit the following directories created by pub.
-.pub
-build/
+# Don't commit the following directories created by pub.
+.dart_tool/
 .packages
-packages
-
-# Or the files created by dart2js.
-*.dart.js
-*.dart.precompiled.js
-*.js_
-*.js.deps
-*.js.map
-*.sw?
-.idea/
-.pub/
-
-# Include when developing application packages.
 pubspec.lock
diff --git a/test/brazil_timezone_test.dart b/test/brazil_timezone_test.dart
index 8bdcc03..3032276 100644
--- a/test/brazil_timezone_test.dart
+++ b/test/brazil_timezone_test.dart
@@ -15,6 +15,9 @@
 // system's time zone calculations. That's only effective on Linux environments,
 // and would only work in a browser if we were able to set it before the browser
 // launched, which we aren't. So restrict this test to the VM and Linux.
+@TestOn('vm && linux')
+
+import 'package:test/test.dart';
 import 'timezone_test_core.dart';
 
 main() {
diff --git a/test/england_timezone_test.dart b/test/england_timezone_test.dart
index a0e3630..8977deb 100644
--- a/test/england_timezone_test.dart
+++ b/test/england_timezone_test.dart
@@ -7,6 +7,14 @@
 ///
 /// This is the same as UTC for part of the year, which makes it an interesting
 /// edge case.
+
+// This test relies on setting the TZ environment variable to affect the
+// system's time zone calculations. That's only effective on Linux environments,
+// and would only work in a browser if we were able to set it before the browser
+// launched, which we aren't. So restrict this test to the VM and Linux.
+@TestOn('vm && linux')
+
+import 'package:test/test.dart';
 import 'timezone_test_core.dart';
 
 main() {
diff --git a/test/gmt_timezone_test.dart b/test/gmt_timezone_test.dart
index 1c2b8f3..338c41e 100644
--- a/test/gmt_timezone_test.dart
+++ b/test/gmt_timezone_test.dart
@@ -6,6 +6,14 @@
 /// GMT.
 ///
 /// This is the same as UTC, but may be differently named in some systems.
+
+// This test relies on setting the TZ environment variable to affect the
+// system's time zone calculations. That's only effective on Linux environments,
+// and would only work in a browser if we were able to set it before the browser
+// launched, which we aren't. So restrict this test to the VM and Linux.
+@TestOn('vm && linux')
+
+import 'package:test/test.dart';
 import 'timezone_test_core.dart';
 
 main() {
diff --git a/test/scorbeysund_timezone_test.dart b/test/scorbeysund_timezone_test.dart
index a5a9b48..127dc1d 100644
--- a/test/scorbeysund_timezone_test.dart
+++ b/test/scorbeysund_timezone_test.dart
@@ -7,6 +7,14 @@
 ///
 /// This is the same as UTC for part of the year and -1:00 from UTC otherwise,
 /// which makes it an interesting edge case.
+
+// This test relies on setting the TZ environment variable to affect the
+// system's time zone calculations. That's only effective on Linux environments,
+// and would only work in a browser if we were able to set it before the browser
+// launched, which we aren't. So restrict this test to the VM and Linux.
+@TestOn('vm && linux')
+
+import 'package:test/test.dart';
 import 'timezone_test_core.dart';
 
 main() {
diff --git a/test/timezone_test_core.dart b/test/timezone_test_core.dart
index 69dff06..e607a81 100644
--- a/test/timezone_test_core.dart
+++ b/test/timezone_test_core.dart
@@ -7,13 +7,6 @@
 import 'dart:io';
 import 'dart:convert';
 
-// This test relies on setting the TZ environment variable to affect the
-// system's time zone calculations. That's only effective on Linux environments,
-// and would only work in a browser if we were able to set it before the browser
-// launched, which we aren't. So restrict this test to the VM and Linux.
-@TestOn('vm')
-@TestOn('linux')
-
 /// The VM arguments we were given, most importantly package-root.
 final vmArgs = Platform.executableArguments;
 
@@ -26,7 +19,7 @@
   // The VM can be invoked with a "-DPACKAGE_DIR=<directory>" argument to
   // indicate the root of the Intl package. If it is not provided, we assume
   // that the root of the Intl package is the current directory.
-  var packageDir = new String.fromEnvironment('PACKAGE_DIR');
+  var packageDir = const String.fromEnvironment('PACKAGE_DIR');
   var packageRelative = 'test/timezone_local_even_test_helper.dart';
   var fileToSpawn =
       packageDir == null ? packageRelative : '$packageDir/$packageRelative';
@@ -53,5 +46,5 @@
     print(result.stdout);
     expect(result.exitCode, 0,
         reason: "Spawned test failed. See the test log from stderr to debug");
-  });
+  }, testOn: 'linux && vm');
 }
diff --git a/test/utc_timezone_test.dart b/test/utc_timezone_test.dart
index 0ef5240..43d6fb5 100644
--- a/test/utc_timezone_test.dart
+++ b/test/utc_timezone_test.dart
@@ -4,6 +4,14 @@
 
 /// Test date formatting and parsing while the system time zone is set to
 /// UTC.
+
+// This test relies on setting the TZ environment variable to affect the
+// system's time zone calculations. That's only effective on Linux environments,
+// and would only work in a browser if we were able to set it before the browser
+// launched, which we aren't. So restrict this test to the VM and Linux.
+@TestOn('vm && linux')
+
+import 'package:test/test.dart';
 import 'timezone_test_core.dart';
 
 main() {
