Partager via


Exécution de tests avec rechargement à chaud

Les exécutions de test 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. L’heure de génération à l’intérieur de Visual Studio peut varier en fonction du type de modifications apportées au code. Pour les solutions plus volumineuses, les builds peuvent être la partie la plus coûteuse de l’exécution de test. Dans Visual Studio 2022 et versions ultérieures, l’exécution des tests avec rechargement à chaud peut être activée pour accélérer l’exécution des tests en ignorant les builds 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 DEBUG
  • Visual Studio 2022 et versions ultérieures

Activer l’exécution des tests avec rechargement à chaud

Activez cette fonctionnalité en choisissant Test>Options>« (expérimental) Activer les exécutions de test rechargées à chaud pour les projets de test C# et VB ciblant .NET 6 et versions ultérieures ». Capture d’écran du bouton Activer les exécutions de test rechargées à chaud dans la page Options de test visual Studio. Lorsque cette option est sélectionnée, l’exécution des tests utilise le rechargement à chaud pour les scénarios pris en charge

Pourquoi est-ce expérimental ?

Il s’agit d’une nouvelle méthode d’exécution de test où nous modifions 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é change à mesure que nous recevons plus de commentaires 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 de test avec rechargement à chaud si possible. Si un rechargement à chaud n’est pas possible, il retourne au comportement habituel de la compilation et de l'exécution des tests. En tant qu’utilisateur exécutant des tests, vous n’avez pas besoin d’apporter de modifications à votre flux de travail (autrement dit, continuez à modifier le code et à exécuter des tests).

Sous le capot, nous utilisons la même infrastructure d’édition et de poursuite qui existe dans l’expérience de rechargement à chaud nouvellement publiée pour la modification du code C#/VB au moment de l’exécution pour déterminer les modifications apportées. Pour cette raison, nous rechargeons à chaud uniquement lorsqu’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

En quoi l'exécution du test sera-t-elle plus rapide ?

Il existe de nombreuses variables qui entrent en jeu lors de l’estimation de la durée pendant laquelle cette fonctionnalité vous économisera. Par exemple:

  • Combien de temps prend la génération du projet ?
  • Quel type de modification a été apporté.
  • Taille du fichier où la modification a été effectuée.
  • Où la modification a été effectuée (s’il s’agissait d’un projet feuille ou non).

En fin de compte, les améliorations de vitesse seront directement liées au temps de compilation qui aurait eu lieu dans cette série de tests spécifique.

Remarques

  • La première exécution de test après l’activation de l’option ou l’ouverture de Visual Studio entraîne une génération de projet.
  • Les fichiers de l’éditeur peuvent ne pas être enregistrés lorsque des tests sont exécutés. Pour résoudre ces problèmes et avant de les valider, assurez-vous d’effectuer une compilation complète (Ctrl+Maj+B).
  • Les fichiers binaires sur le disque ne sont pas mis à jour lorsque l’exécution de test rechargée à chaud se produit.
  • L’exécution de test rechargée à chaud ne fonctionne pas avec « Test>Run All Tests », « Run All Tests in View » (Exécuter tous les tests en mode 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 elle garantit actuellement la création de l’ensemble de la solution.
  • Lorsque des tests avec des frameworks cibles non pris en charge (inférieurs à .NET 6.0) s’exécutent, une build de projet se produit.
  • Si vous voyez des incohérences entre ce qui se trouve sur le disque et ce que l’Explorateur de tests affiche, envisagez une build de solution/projet à l’aide de Ctrl+Maj+B , puis exécutez des tests. Toute compilation explicite remplace les résultats des tests de rechargement à chaud par les résultats des tests de compilation complète standard.

Problèmes connus

  • L’exécution de test avec rechargement à chaud ne se produit pas dans les scénarios suivants :
    • Couverture du code
    • Tests unitaires en direct
    • Profilage
    • Débogage
  • Les traces de pile peuvent ne pas être lisibles avec la présence de jetons non lisibles. Ce problème est suivi ici et est prévu pour un correctif dans .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 importants

Comme indiqué précédemment, pour que cette fonctionnalité expérimentale soit complète, nous avons besoin de vos commentaires. Si vous avez une suggestion sur la façon dont l’expérience doit être, ou rencontrez des problèmes, prenez un moment pour nous signaler des problèmes. Seuls vos commentaires peuvent nous assurer que les problèmes critiques sont résolus et que les décisions futures sont hiérarchisées en fonction de vos commentaires.

Pour nous contacter, utilisez le mécanisme de commentaires de Visual Studio.