diff --git a/src/_pytest/config/__init__.py b/src/_pytest/config/__init__.py index 38fb1ee6d27..fa116d732ac 100644 --- a/src/_pytest/config/__init__.py +++ b/src/_pytest/config/__init__.py @@ -1418,6 +1418,10 @@ def _preparse(self, args: list[str], addopts: bool = True) -> None: args, namespace=copy.copy(self.known_args_namespace) ) + # Deduplicate pythonwarnings to fix duplicate -W entries + warnings = getattr(self.known_args_namespace, "pythonwarnings", []) + self.known_args_namespace.pythonwarnings = list(dict.fromkeys(warnings) + self._validate_plugins() self._warn_about_skipped_plugins()