Partager via


Exécution de test avec le rechargement à chaud

Les séries de tests dans Visual Studio impliquent la génération du projet pour mettre à jour les fichiers binaires sur le disque avant d’utiliser la Plateforme de test pour exécuter vos tests. La durée de génération dans Visual Studio peut varier en fonction du type de modifications apportées au code. Pour les solutions plus importantes, les générations peuvent être la partie la plus coûteuse de la série de tests. Dans Visual Studio 2022 et versions ultérieures, l’exécution des tests avec le rechargement à chaud peut être activée pour accélérer l’exécution des tests en ignorant les générations pour les scénarios pris en charge.

Qu’est-ce qui est pris en charge ?

  • Projets C# et VB ciblant .NET 6.0 et versions ultérieures
  • Projets de test générés pour la configuration de DÉBOGAGE
  • Visual Studio 2022 et versions ultérieures

Activer l’exécution de tests avec le rechargement à chaud

Activez cette fonctionnalité en choisissantTester>Options>« (Expérimental) Activer les séries de tests rechargées à chaud pour les projets de test C# et VB ciblant .NET 6 et versions ultérieures ». Screenshot of the Enable Hot Reloaded Test Runs button on the Visual Studio Test Options page. When this is selected, tests execution will use hot reload for supported scenarios

Pourquoi est-ce expérimental ?

Il s’agit d’une nouvelle méthode d’exécution des tests qui modifie un chemin d’accès largement utilisé pour valider le code. Nous nous attendons également à ce que l’expérience utilisateur autour de cette fonctionnalité évolue à mesure que nous recevons davantage de commentaires de la part des utilisateurs. Pour ces deux raisons, nous avons actuellement étiqueté cette fonctionnalité comme « expérimentale ».

Fonctionnement

Une fois l’option activée, l’Explorateur de tests utilise automatiquement l’exécution des tests avec le rechargement à chaud lorsque cela est possible. Si un rechargement à chaud n’est pas possible, il revient au comportement normal de génération et d’exécution des tests. En tant qu’utilisateur exécutant des tests, vous n’avez pas besoin d’apporter des modifications à votre flux de travail (c’est-à-dire continuer à modifier le code et à exécuter des tests).

Sous le capot, nous utilisons la même infrastructure Modifier et continuer qui existe dans la nouvelle version de l’expérience de Rechargement à chaud pour modifier le code C#/VB au moment de l’exécution afin de déterminer les modifications apportées. Pour cette raison, nous rechargeons à chaud uniquement quand il n’y a pas de « modifications grossières », auquel cas nous revenons à la génération de vos tests avant de les exécuter. Pour plus d’informations sur les modifications prises en charge, consultez la documentation Modifier et continuer

Dans quelle mesure l’exécution du test sera-t-elle plus rapide ?

De nombreuses variables entrent en jeu lorsqu’il s’agit d’estimer le temps que cette fonctionnalité vous permettra d’économiser. Par exemple :

  • Durée de génération du projet.
  • Quel type de modification a été effectué.
  • Taille du fichier dans lequel la modification a été effectuée.
  • Où la modification a été effectuée (s’il s’agit d’un projet feuille ou non).

En fin de compte, les améliorations de la vitesse seront directement liées au temps de génération qui aurait été nécessaire pour cette série de tests spécifique.

Notes

  • La première série de tests après l’activation de l’option ou l’ouverture de Visual Studio entraîne une génération de projet.
  • Les fichiers dans l’éditeur peuvent ne pas être enregistrés lors de l’exécution des tests. Pour résoudre ces problèmes et avant d’archiver, veillez à effectuer une génération complète (Ctrl+Maj+B).
  • Les fichiers binaires sur le disque ne sont pas mis à jour lors de l’exécution des tests rechargés à chaud.
  • L’exécution des tests rechargés à chaud ne fonctionne pas avec « Tester>Exécuter tous les tests », « Exécuter tous les tests dans l’affichage » dans l’Explorateur de tests, ni avec Exécuter tous les tests à partir du nœud de solution dans l’Explorateur de solutions. La fonctionnalité ne fonctionne pas avec ces commandes, car elles garantissent actuellement la génération de la solution entière.
  • Lorsque des tests avec des versions cibles de .Net Framework non prises en charge (inférieures à .NET 6.0) sont exécutés, une génération de projet se produit.
  • Si vous constatez des incohérences entre ce qui se trouve sur le disque et ce qu’affiche l’Explorateur de tests, envisagez de générer la solution/le projet à l’aide de Ctrl+Maj+B, puis exécutez les tests. Toute génération explicite remplace les résultats des tests de rechargement à chaud par les résultats des tests de génération complète standard.

Problèmes connus

  • L’exécution des tests avec le rechargement à chaud ne se produit pas dans les scénarios suivants :
    • Couverture du code
    • Live Unit Testing
    • Profilage
    • Débogage
  • Les rapports des appels de procédure peuvent ne pas être lisibles en présence de jetons illisibles. Ce problème est suivi ici et devrait être corrigé dans la version .NET 7.0
    • La solution de contournement recommandée dans ce cas consiste à générer votre projet et à réexécuter le test.

Vos commentaires sont précieux

Comme indiqué précédemment, pour que cette fonctionnalité expérimentale soit complète, nous avons besoin de vos commentaires. Si vous avez des suggestions pour améliorer l’expérience ou si vous rencontrez des problèmes, veuillez prendre un moment pour nous les signaler. Nous pourrons ainsi nous assurer que les problèmes critiques sont résolus et que les décisions futures sont prises en tenant compte de vos commentaires.

Pour nous contacter, veuillez utiliser le mécanisme de commentaires sur Visual Studio.