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

Vous pouvez activer cette fonctionnalité dans le voletOptions>. Développez la section Tous les paramètres>test et cochez la case (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 montrant comment sélectionner l’option Activer les exécutions de test rechargées à chaud dans Visual Studio.

Vous pouvez activer cette fonctionnalité dans la boîte de dialogueOptions des >. Développez la section Test>Général et cochez la case (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 montrant comment sélectionner l’option Activer les exécutions de test rechargées à chaud dans Visual Studio.

Pourquoi est-ce expérimental ?

Cette fonctionnalité fournit une nouvelle approche pour l’exécution des tests qui modifie un chemin d’accès largement utilisé pour valider le code. L’expérience utilisateur de cette fonctionnalité peut changer à mesure que nous continuons à recevoir des commentaires. Pour ces raisons, la fonctionnalité est actuellement étiquetée 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 revient au comportement normal 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 continuation qui existe dans l’expérience de Rechargement à chaud récemment 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

À quelle vitesse l’exécution des tests est-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 permet d’économiser. 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 sont directement liées au temps de compilation qui aurait eu lieu lors de cette exécution de test spécifique.

Remarques

  • La première exécution de test après l’activation de l’option ou l’ouverture de Visual Studio déclenche 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, essayez une build de solution/projet avec le raccourci clavier 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

Pour que cette fonctionnalité expérimentale soit complète, nous avons besoin de vos commentaires. Si vous avez une suggestion pour améliorer l’expérience ou rencontrez un problème, prenez un moment pour apporter votre contribution. 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 envoyer des commentaires, utilisez le mécanisme de commentaires Visual Studio.