Visual Studio Express 2013: sortie du programme dans les tests unitaires (console, débogage, etc.)
Je suis vraiment à se taper la tête contre le mur ici. Est-il si difficile d'obtenir une sortie de programme dans Visual Studio Express 2013)? Lors de l'écriture de code, je trouve qu'il est absolument indispensable d'être en mesure d'imprimer les valeurs des variables, activités, etc. tout en travaillant et de dépannage.
En Java et Eclipse, le Système..println() fonctionne toujours, l'impression de l'IDE de la console. Lors de l'écriture de programmes en C je l'ai toujours utiliser la console, donc, en écho à quelque chose n'est pas un problème. Cependant, dans VS Express 2013 je ne peux pas sembler obtenir de sortie.
Peut être le problème lié au fait que je suis en train d'écrire des tests unitaires, et pas "normal" des programmes exécutables? Si oui, est-il un moyen d'obtenir VS afficher le programme de sortie de l'unité de classes de test? J'ai essayé d'utiliser le débogage, mais cela ne veut pas montrer quoi que ce soit. La pensée qu'il y a un problème de config, j'ai cherché des solutions pour corriger les messages ne s'affiche pas, mais aucune des solutions que j'ai trouvé (ici ou d'autres lieux), semblent aider.
Ou, bien sûr - si il y a une autre méthode couramment utilisée pour vérifier les valeurs du programme, sortie, etc. lors de l'écriture de code en VS/C#, j'aimerais vous entendre à ce sujet 🙂
Quelqu'un a des idées? Et s'il vous plaît, si la question est trop imprécise ou de quelque chose, dis-le moi et je vais le corriger.
NB: je suis à l'aide de l'unité de classes de test pour les tests fonctionnels, au cas où quelqu'un veut indiquer ce que je dois, et faire et ne pas faire avec les tests unitaires.
EDIT 1: j'ai oublié de mentionner que je ne suis pas en mesure d'exécuter le code avec "Démarrer: Debug". Si j'essaie, j'obtiens cette erreur: "Un projet avec un Type de Sortie de la Bibliothèque de la Classe ne peut pas être démarré directement." (Le projet de tests unitaires utilise des classes dans un autre projet, j'ai un projet de bibliothèque de classes.) C'est, bien sûr, parce que je n'ai pas de projet exécutable dans la solution. La façon dont je dirige c'est pour exécuter le test sélectionné, à partir de l'Explorateur de tests.
EDIT 2: Code:
using System;
using System.Diagnostics;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using WordPressAutomation;
namespace WordPressTests
{
[TestClass]
public class LoginTests : WordPressTest {
[TestMethod]
public void AdminUserCanLogIn() {
System.Diagnostics.Debug.WriteLine("Something...");
System.Diagnostics.Trace.WriteLine("Something...");
}
}
}
source d'informationauteur Frank H.
Vous devez vous connecter pour publier un commentaire.
La TestExplorer de Visual Studio a une fenêtre de sortie. Il ne pas écrire à la Sortie par défaut de Visual Studio (je ne sais pas si c'est configurable)
Vous devez sélectionner le Test pour voir le résultat dans le TestExplorer. Si le Test a la Sortie, vous devriez voir un lien Hypertexte "Sortie". En cliquant sur ouvrir un nouvel onglet affichage de la sortie de l'épreuve.
Les messages affichés sont rédigés par des
Console.WriteLine
.Im à l'aide de Visual Studio 2013 Professional. Je ne sais pas si la version Express fonctionne diffrent.
Si vous configurez votre fenêtre de Sortie pour afficher les données de débogage, il montre là.
Source: Visual Studio 2010 Express. Écrire dans la fenêtre de sortie (C'est pour VS 2010, mais elle devrait aussi s'appliquer à 2013 puisque c'est une option, pas une option IDE).
Je n'aime pas vraiment répondre à ma propre question, car il semble sorte de "malhonnête". Cependant, il a été calme pendant un moment, et je ne pense pas qu'il y a d'autres réponses.
La solution la plus pratique est de créer un autre projet, par exemple une console de projet, où vous créez la sortie. Il pourrait ne pas communiquer directement avec les tests unitaires, mais depuis le framework de test je vais développer dans cet exemple spécifique se compose de tests fonctionnels en parlant de bibliothèques de classes, il est possible d'utiliser un autre projet dans la solution.
Donc, pour résumer, la solution se compose de:
- Un projet de tests unitaires, les tests réels
- Un projet de bibliothèque de classes avec le cadre logique
- Un projet de console pour tester des classes dans la bibliothèque de classe, ou de la non-unité de classes de test dans le test de l'unité de projet.
Je crois que vous devriez utiliser journalpas de console de sortie pour ce genre de situation. Vous pouvez config journal pour la sortie vers un fichier, ou même de la sortie d'une fenêtre que vous avez spécifié. Je crois que vous pouvez utiliser le journal pour la situation sans la console, et vous pouvez configurer votre journal d'avertissement ou d'erreur de sortir dans la production, et les informations de débogage peuvent être affichées pendant votre session de débogage.
- Je utiliser log4jtout bon journal logiciel peut être utilisé ici.
Vous devriez tirer parti d'une structure de journalisation pour faire ce genre de chose. À partir de la structure de journalisation, vous pouvez choisir de connecter à la console ou à un fichier plat, ou de nombreuses autres données de puits, ou vous pouvez dire le cadre d'ignorer l'entrée. Bon journalisation des cadres sont extrêmement configurable.
.NET des terres, la communauté favori semble être NLog, http://nlog-project.org/ . La "prise en main" lien vous va.
Je ne suis pas sûr de VS2013, mais dans VS2008, si vous double-cliquez sur le résultat de l'essai de résumé (après qu'il se termine, succès ou échec), il va ouvrir une fenêtre avec "Résultats", "Message d'Erreur", etc, suivi à la fin par "Standard de Sortie de la Console". Il fait un bon travail de capturer la sortie de la console pour chaque test individuellement. Le seul inconvénient est qu'il ne montre pas la sortie en temps réel. Il ne montrera à l'achèvement.
Ne pas exécuter ou déboguer un projet de tests unitaires. On lance une session de test en sélectionnant 1 ou plusieurs tests dans
Test Explorer
fenêtre. Ou sur une unité de la méthode d'essai par un clic droit et en sélectionnantRun Tests
ouDebug Tests
.Utilisation
Console.WriteLine
ouDebug.WriteLine
d'information sur la sortie des messages et regarder pour eux dans lesOutput
lien dans l'unité des résultats de test.