web-dev-qa-db-fra.com

Tests unitaires dans Visual C # 2010 Express?

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

45
user128807

En tant que mise à jour, j'utilise actuellement Visual Studio Express for Desktop, la suite VS a été entièrement remaniée depuis 2010 et reflète plus fidèlement le "grand frère".

Les tests unitaires sont désormais disponibles en tant que fonctionnalité intégrée et fonctionnent de la même manière (je n'ai pas testé toutes les fonctionnalités) que Visual Studio non-Express.

1
AJD

Comme cela a été indiqué, les versions Express n'ont pas de fonctionnalités intégrées et n'autorisent pas de compléments pour cette fonctionnalité, 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" à partir de Visual Studio Express et exécuter votre exécuteur de test à partir de cela si vous le souhaitez.

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

Voici un nouveau lien de travail.

38
Andy

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

MSTest est livré avec l'édition Pro et supérieure.

10
Oded

En 2010, il est possible d'utiliser une application externe, mais le débogage des tests unitaires devient difficile. Si vous souhaitez que le débogage à l'aide de NUnit soit probablement le meilleur itinéraire (mais pas la seule option, voir ExpressUnit ). Voir this réponse sur un autre thread SO. Il renvoie à un blog qui mentionne l'exécution du projet de test en tant qu'application console et l'appel de la nunit DLL de bibliothèque directement 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);
        }
    }
}
9
VariableContent

Les éditions de Visual Studio Express ont la limitation que les plugins/compléments sont expressément interdits. Ils ne sont pas livrés avec une solution de test intégrée et vous ne pouvez pas en ajouter une.

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

8
STW

Ceci est désormais inclus dans Visual Studio 2013 Express: http://msdn.Microsoft.com/en-us/library/dd264975.aspx

Si Test Explorer n'est pas visible, choisissez Test dans le menu Visual Studio , choisissez Windows , puis choisissez Explorateur de tests .

enter image description here

7
matt burns

Vous pouvez toujours configurer une classe supplémentaire avec une méthode Main () dans le projet et la sélectionner comme objet de démarrage dans votre projet et la déboguer à partir de là. Il peut ne pas convenir dans des situations où des tâches plus complexes sont effectuées, car vous ne pouvez pas tirer parti des fonctionnalités plus spécifiques aux tests, mais il peut être utile dans certains projets plus simples. Si votre projet est une bibliothèque de classes, envisagez de la convertir en application console, puis de la réactiver lorsque vous avez terminé les tests.

0
user507410

Jetez un œil à NHarness sur codeplex, une bibliothèque très simple qui vous permet d'exécuter des montages de test NUnit dans un projet de test. Cela vous permet de déboguer à travers vos tests unitaires si nécessaire

Un exemple (à partir de la page codeplex) d'un lanceur de test est comme ci-dessous

    public class RunTests
    {
        public static void Main(string[] args)
        {
            TestResults results = Tester.RunTestsInClass<Tests>();

            Console.WriteLine("Tests Run: {0}", results.NumberOfResults);
            Console.WriteLine("Results {0}:PASSED {1}:FAILED", results.NumberOfPasses, results.NumberOfFails);
            Console.WriteLine("Details:");

            foreach (TestResult result in results)
            {
                Console.WriteLine("Test {0}: {1} {2}",
                                            result.MethodName,
                                            result.Result,
                                            result.Result == TestResult.Outcome.Fail ? "\r\n" + result.Message : "");
            }

            Console.ReadLine();
        }
    }

L'avantage de cette bibliothèque est que la classe TestResults peut être utilisée pour récupérer des informations sur les tests exécutés, de sorte que la bibliothèque peut également être utilisée dans des applications de test unitaire personnalisées

0
johnc

(Remarque: je sais que ce message est ancien, mais cela pourrait aider quelqu'un)

Comme Andy l'a indiqué ci-dessus, vous pouvez utiliser NUnit .
Mais les paramètres du lien posté par Andy ne fonctionnent plus dans VS C # 2010.
Voici les paramètres que j'utilise dans la fenêtre Outils externes:

Commande: C:\Program Files (x86)\NUnit 2.6.2\bin\nunit-x86.exe
(il y a aussi un nunit.exe dans le répertoire bin)

Arguments: $ (ProjectDir) $ (ProjectFileName)
Répertoire initial: $ (ProjectDir) bin/Debug/$ (TargetName) $ (TargetExt)

0
Jack Griffin