diff --git a/pw_cli/py/envparse_test.py b/pw_cli/py/envparse_test.py
index dfa3c59..cbeb332 100644
--- a/pw_cli/py/envparse_test.py
+++ b/pw_cli/py/envparse_test.py
@@ -38,7 +38,7 @@
             'ReVeRsE': 'pigweed',
         }
 
-        self.parser = envparse.EnvironmentParser()
+        self.parser = envparse.EnvironmentParser(error_on_unrecognized=True)
         self.parser.add_var('PATH')
         self.parser.add_var('FOO', type=int)
         self.parser.add_var('BAR', type=bool)
@@ -100,7 +100,8 @@
         }
 
     def test_parse_unrecognized_variable(self):
-        parser = envparse.EnvironmentParser(prefix='PW_')
+        parser = envparse.EnvironmentParser(prefix='PW_',
+                                            error_on_unrecognized=True)
         parser.add_var('PW_FOO')
         parser.add_var('PW_BAR')
 
@@ -108,14 +109,16 @@
             parser.parse_env(env=self.raw_env)
 
     def test_parse_unrecognized_but_allowed_suffix(self):
-        parser = envparse.EnvironmentParser(prefix='PW_')
+        parser = envparse.EnvironmentParser(prefix='PW_',
+                                            error_on_unrecognized=True)
         parser.add_allowed_suffix('_ALLOWED_SUFFIX')
 
         env = parser.parse_env(env={'PW_FOO_ALLOWED_SUFFIX': '001'})
         self.assertEqual(env.PW_FOO_ALLOWED_SUFFIX, '001')
 
     def test_parse_allowed_suffix_but_not_suffix(self):
-        parser = envparse.EnvironmentParser(prefix='PW_')
+        parser = envparse.EnvironmentParser(prefix='PW_',
+                                            error_on_unrecognized=True)
         parser.add_allowed_suffix('_ALLOWED_SUFFIX')
 
         with self.assertRaises(ValueError):
@@ -132,7 +135,8 @@
         self.assertEqual(env.PW_BAR, self.raw_env['PW_BAR'])
 
     def test_add_var_without_prefix(self):
-        parser = envparse.EnvironmentParser(prefix='PW_')
+        parser = envparse.EnvironmentParser(prefix='PW_',
+                                            error_on_unrecognized=True)
         with self.assertRaises(ValueError):
             parser.add_var('FOO')
 
