147 votes

Comment puis-je écrire la sortie d'un test unitaire ?

Tout appel dans mon unité teste soit Debug.Write(line) ou Console.Write(Line) est simplement ignoré lors du débogage et la sortie n'est jamais imprimée. Les appels à ces fonctions de l'intérieur des classes, j'utilise très bien le travail.

Je comprends que les tests unitaires sont censés être automatisés, mais j'aimerais quand même pouvoir émettre des messages à partir d'un test unitaire.

156voto

frennky Points 5009

Essayez d'utiliser TestContext.WriteLine() qui sort du texte dans les résultats de test.

Exemple :

[TestClass]
public class UnitTest1
{
    private TestContext testContextInstance;

    /// <summary>
    /// Gets or sets the test context which provides
    /// information about and functionality for the current test run.
    /// </summary>
    public TestContext TestContext
    {
        get { return testContextInstance; }
        set { testContextInstance = value; }
    }

    [TestMethod]
    public void TestMethod1()
    {
        TestContext.WriteLine("Message...");
    }
}

La « magie » est décrite dans MSDN :

Pour utiliser TestContext, créez un membre et une propriété dans votre classe de test [...] Le cadre de test définit automatiquement la propriété, que vous pouvez ensuite utiliser dans les tests unitaires.

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