edit: Je viens de corriger la macro qui contenait un petit bug !

J’ai amélioré ma macro pour lancer les tests unitaires via TestDriven.net

L’ancienne version contenait en dur le nom de la solution et du projet contenant les tests, ce qui n’est pas très optimal quand on a plusieurs projets en parallèle. Cette nouvelle version lance les tests sur le premier projet contenant le mot “Test” dans son nom, voici son code :


    Sub RunAllTests()
        Dim solutionExplorer As Window = DTE.Windows.Item(Constants.vsWindowKindSolutionExplorer)
        Dim solution As UIHierarchyItem = solutionExplorer.Object.UIHierarchyItems.Item(1)
        Dim project As UIHierarchyItem

        For Each item As UIHierarchyItem In solution.UIHierarchyItems
            If item.Name.Contains("Test") Then
                project = item
                Exit For
            End If
        Next

        solutionExplorer.Activate()
        project.UIHierarchyItems.Expanded = True
        project.Select(vsUISelectionType.vsUISelectionTypeSelect)
        DTE.ExecuteCommand("TestDriven.NET.RunTests")
    End Sub
 

Bons tests !

Raccourci pour TestDriven.NET

21 février, 2008

Dans ma boite à outils du développeur, j’utilise TestDriven.NET qui facilite grandement le lancement des tests unitaires au sein de Visual Studio.

Mais je dois avouer que j’étais fatigué de :

  1. saisir la souris pour faire un clic droit “Run Test(s)” dans mon code
  2. avant chaque archivage de modification, prendre la souris, trouver le projet de test dans la solution, faire un clic droit et “Run Test(s)” pour lancer tous les tests unitaires…

Après quelques petites recherches, on peut facilement résoudre le premier point en assignant une combinaison de touche à la commande “TestDriven.NET.RunTests” qui s’occupe de lancer le(s) test(s) suivant ou on se trouve.

Pour résoudre le second point, j’ai du faire une macro qui sélectionne le bon projet dans la solution et éxécute la commande magique dessus.

Voici donc la macro qui m’épargne des mouvements inutiles :) :


    Sub RunAllTests()
        DTE.Windows.Item(Constants.vsWindowKindSolutionExplorer).Activate()
        DTE.ActiveWindow.Object.GetItem("NomSolution\NomProjet").UIHierarchyItems.Expanded = True
        DTE.ActiveWindow.Object.GetItem("NomSolution\NomProjet").Select(vsUISelectionType.vsUISelectionTypeSelect)
        DTE.ExecuteCommand("TestDriven.NET.RunTests")
    End Sub
 

Il suffit de modifier “NomSolution\NomProjet” avec les bonnes informations et d’assigner la macro à un raccourci clavier (ou au pire de la placer dans la barre d’outils pour gagner quelques clics).

Si vous avez d’autres astuces pour améliorer la productivité, je suis preneur ;)