Problèmes de tests d'intégration avec MVC Core 3.1 et l'authentification
Si vous utilisez des librairies du namespace Microsoft.AspNetCore.Authentication, il est possible que vous rencontriez des problèmes d'upgrade.
Pour ceux qui ne connaîtraient pas les librairies Microsoft.AspNetCore.Authentication. Celle-ci comprennet le nessecaire pour s'authentifier avec Open Auth et de nombreux fournisseurs d'identités (Facebook, Google, Twitter, Microsoft ...).
Dans le cadre d'un projet de tests unitaires d'intégration (tests complets des pages via WebApplicationFactory avec et sans authentification), je suis passé de la version 3.1.0 à 3.1.1. Un petit upgrade insignifiant qui s'est conclu par un échec de l'intégralité de mes tests. Le framework de test me faisait remonter une erreur liée à l'impossibilité de charger un fichier lié à Microsoft.AspNetCore.DataProtection.Abstractions.
Pour résoudre le problème, il m'a fallu ajouter une référence à Microsoft.AspNetCore.DataProtection.Abstractions dans mon projet de tests.
Exemple de configuration pour un projet xUnit:
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.DataProtection.Abstractions" Version="3.1.1" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Testing" Version="3.1.1" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.4.0" />
<PackageReference Include="xunit" Version="2.4.1" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.1" />
</ItemGroup>
Moralité
L'ajout de librairie par référence est une idée bien sympathique, mais elle ne vous met pas à l'abri de problèmes lors d'upgrade. Attention donc à toujours avoir des tests unitaires sous la main. Ici le problème a concerné la plateforme de test, mais demain, ce pourrait être le fonctionnement de votre application qui pourrait être impacté.