Dans mon projet Mstest Unittest, avant d'exécuter des tests, j'ai besoin d'exécuter certaines commandes. Existe-t-il une fonctionnalité, comme Global.Asax est pour des projets basés sur le Web, qui me permettra de lancer quelque chose avant que tous les tests courent? P>
Je devrais préciser que lorsque je dis "exécuter certaines commandes", je ne parle pas des commandes DOS, mais exécutez du code. P>
3 Réponses :
Propriétés de votre projet, puis sur le champ de débogage Vous pouvez spécifier des arguments p>
éditer em>
Lorsque vous voyez le menu de débogage dans les propriétés, vous pouvez démarrer un programme externe pour vous faire certaines choses lorsque vous commencez à déboguer. Cela déclenchera lorsque vous lancez une instance de votre projet de test. Vous pouvez également spécifier des arguments de ligne de commande dans la boîte d'arguments de ligne de commande. p>
Par exemple, j'utilise Nunit I Spécifier Nunit en tant que programme externe et spécifiez l'emplacement du fichier .dll dans les arguments de la ligne de commande P>
Je voudrais exécuter du code plutôt que d'exécuter des commandes externes.
Et ce qui vous empêche d'exécuter un fichier .exe que vous avez créé? Vous pouvez compiler votre code qui doit être exécuté dans un exe que vous commencerez par une session de débogage ou que je manque quelque chose parce que je pense que c'est une bonne solution à votre problème.
Je dois exécuter du code avant que tous les tests ne soient lancés. Code étant des méthodes statiques sur certaines classes qui seront appelées plus tard par la plupart des tests. C'est pourquoi j'ai besoin d'exécuter un certain code avant l'exécution des tests.
Si je comprends correctement, vous devez faire fonctionner un code d'initialisation avant de démarrer vos tests. Si tel est effectivement le cas, vous devez déclarer une méthode à l'intérieur de votre classe d'unité-test avec le AssemblyInitializeattribute qui fonctionnera avant tout autre test de montage P> p>
AssemblyInitializeattribute code> est exactement ce dont j'ai besoin. Merci un tas, vous êtes-vous une vérification verte.
Je devais changer la signature pour que cela fonctionne maintenant: Public Static Void ClassSetup (TestContext CTX) CODE>
Les frameworks de test unitaire prennent généralement en charge la configuration et les méthodes "DÉPARTER" pour l'ensemble du correctif de test et des tests individuels. Mstest vous permet de spécifier quelles méthodes exécutées lors de ces attributs: ayant dit cela, soyez prudent avec les méthodes d'initialisation et de nettoyage de la classe si vous exécutez des tests d'unité ASP.NET. Comme il le dit dans le Cet attribut ne doit pas être utilisé sur
Tests de l'unité ASP.NET, c'est-à-dire tout test
avec [HostType ("ASP.NET")] Attribut.
En raison de la nature apatride des IIS
et asp.net, une méthode décorée avec
Cet attribut peut être appelé plus de
une fois par test de test. P>
blockQuote> p> classinitializeattribute code>
Documentation: P>
Bon ajout sur les tests de l'unité ASP.NET! J'ai travaillé autour de cela en définissant la [testinitialize] dans une classe de base.