46 votes

Tests unitaires dans Visual C# 2010 Express ?

Visual C# 2010 Express dispose-t-il d'une fonction de test unitaire ?

38voto

Andy Points 2608

Comme il a été dit, les versions Express n'intègrent pas cette fonctionnalité et ne permettent pas l'ajout de modules complémentaires, mais vous pouvez utiliser un outil externe, par exemple. NUnit .

Vous pouvez également configurer une commande à exécuter à partir de l'option de menu "Outils->Outils externes" dans Visual Studio Express et exécuter votre programme d'exécution de tests à partir de cette commande si vous le souhaitez.

Ici Il existe un lien qui montre comment le faire avec VS C# 2008 Express, (faites défiler jusqu'à la fin) mais je pense que cela devrait être valable pour 2010 également.

Voici un nouveau lien qui fonctionne.

2 votes

De plus, l'ouverture (d'un projet déjà ouvert dans VS Express) dans Sharpdevelop 4.0 donnera la possibilité d'exécuter des tests "visuellement" (leurs résultats étant liés au code source) et éventuellement d'apporter quelques modifications rapides au code (qui seront correctement reconnues par VS Express lorsque vous y retournerez par Alt_Tab). Ainsi, le prix à payer pour avoir une fonctionnalité de test unitaire "visuel" utilisable est d'environ un Alt-Tab supplémentaire vers SharpDevelop (et peut-être un clic sur "Run Tests").

0 votes

NB : cela ne fonctionnera pas pour VS Express pour Windows Phone, sauf si l'outil externe est spécifiquement compilé pour lui...

0 votes

Merci, nouveau lien ajouté.

10voto

Oded Points 271275

Rien n'est intégré, mais vous pouvez toujours utiliser nUnit avec lui.

MSTest est fourni avec l'édition Pro et les versions supérieures.

9voto

VariableContent Points 111

En 2010, il est possible d'utiliser une application externe, mais le débogage des tests unitaires devient difficile. Si vous voulez déboguer, l'utilisation de NUnit est probablement la meilleure solution (mais ce n'est pas la seule option, cf. ExpressUnit ). Voir ce réponse sur un autre fil de discussion sur le SO. Elle renvoie à un blog qui mentionne l'exécution du projet de test en tant qu'application console et l'appel direct des dlls de la bibliothèque nunit pour lancer les tests :

using System;

namespace RunTests
{
    static class Program
    {
        [STAThread]
        static void Main()
        {
            var args = new string[] { Assembly.GetExecutingAssembly().Location, "/run" };
            NUnit.Gui.AppEntry.Main(args);
        }
    }
}

0 votes

404 sur l'article de blog. C'est un excellent moyen de déboguer les tests unitaires dans l'interface utilisateur. Merci pour le partage. J'ai fini par créer un projet séparé, en ajoutant une référence aux assemblages que je veux tester, puis en utilisant la commande Assembly.GetAssembly( typeof(MyAssembly.MyType)).Location pour fournir l'assemblage au coureur de test.

8voto

STW Points 15326

Les éditions Visual Studio Express sont limitées par le fait que les plugins/addins sont expressément interdits. Elles ne sont pas livrées avec une solution de test intégrée, et vous ne pouvez pas en ajouter une.

Votre meilleure/seule option est d'utiliser un exécuteur de test autonome, tel que nUnit, mspec, etc... et de l'exécuter en externe depuis VSE.

7voto

matt burns Points 6072

Cette fonction est désormais incluse dans Visual Studio 2013 Express : http://msdn.microsoft.com/en-us/library/dd264975.aspx

Si Test Explorer n'est pas visible, choisissez Test sur le visuel Studio, choisissez Windows puis choisissez Test Explorer .

enter image description here

0 votes

C'est tellement triste de voir M$ sauter dans le train des "tests" juste parce que tout le monde le fait. Quelle mode. (Sérieusement, nous sommes en 2013 et nous venons juste d'intégrer les tests unitaires dans VS ? ?)

2 votes

@cod3monk3y, quel étrange commentaire. C'est dommage que ça ait pris autant de temps mais c'est sûrement en amélioration ? J'aurais du mal à décrire les tests comme une mode !

1 votes

Absolument, c'est une amélioration ! Je développe en C# depuis plus de dix ans et je suis un grand partisan des tests unitaires, de la couverture du code, des processus, etc. Le commentaire était donc sarcastique à contrecœur. Les tests devraient faire partie intégrante du processus de développement et je suis heureux de voir qu'ils deviennent enfin une fonctionnalité de base que tous les développeurs peuvent partager. J'ai récemment fait un peu de programmation en Python et Angular/JS/Flask/Python et j'aime la façon dont les tests unitaires font partie de la culture ( python -m unittest discover pour python et jasmine/karma pour JS). Je suis heureux de voir que cela fait partie de la nouvelle boîte à outils des développeurs.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X