IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Tests unitaires sur les logs log4net


Sujet :

C#

  1. #1
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 19
    Points : 15
    Points
    15
    Par défaut Tests unitaires sur les logs log4net
    Bonjour,

    Je réalise une série de tests unitaires sur des logs. Je dois donc vérifier que les bons logs ont été enregistrer dans un fichier de log de test.

    Seulement voila, lorsque j'essaye d'acceder au fichier de log via la classe File afin de vérifier que les logs sont bons, j'ai l'erreur suivante :

    NUnitTests.Common.Logger.ViewLoggerTest.LogStartTest:
    System.IO.IOException : The process cannot access the file 'D:\wwwroot\SocleCommunV3\Solution\NUnitTests\bin\Debug\TestsFiles\TestsLogs.log' because it is being used by another process.
    Cela est logique puisque le logger est en écriture sur le fichier de log ... mais du coup, comment puis-je faire pour lire ce fichier afin de vérifier que ce qui a été écrit est correct?

    Petite info : J'utilise log4net.

    Merci d'avance
    Vic

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2009
    Messages
    2 025
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2009
    Messages : 2 025
    Points : 5 462
    Points
    5 462
    Par défaut
    Humm je ne pense pas que tester log4net à ce niveau soit pertinent!
    Il faut considérer qu'il fonctionne, et qu'il fait ce qu'on lui demande.

    Est-ce qu'on s'amuse à tester que DateTime.Now renvoi bien la bonne date?

    Tu peux à la limite tester qu'un fichier à bien était créé,par exemple pour tester que log4net a au moins fait quelque chose, mais qu'il le fait bien ca n'est pas dans ton code à tester! Il y a sans doute un jeu de test livré avec log4net tu peux toujours t'y amuser si tu n'as pas confiance!

  3. #3
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 19
    Points : 15
    Points
    15
    Par défaut
    Merci de ta réponse,

    En fait je cherche surtout à vérifier que le log écrit dans le fichier correspond bien à ce que j'attend. Je teste des classes utilisant log4net et non log4net lui même.

    Par exemple, tester qu'une ligne entrée dans le fichier de log grace à une méthode utilisant log4net (et que j'ai codé moi même) correspond bien à ce que j'avais prévu.

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2009
    Messages
    2 025
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2009
    Messages : 2 025
    Points : 5 462
    Points
    5 462
    Par défaut
    Ouai je vois le genre de truc.
    Essaye de voir avec MinimalLock
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <appender name="FileAppender" type="log4net.Appender.FileAppender">
        <file value="${TMP}\log-file.txt" />
        <appendToFile value="true" />
        <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
        </layout>
    </appender>

  5. #5
    Membre à l'essai
    Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 19
    Points : 15
    Points
    15
    Par défaut
    Merci ça fonctionne très bien maintenant. Avec minimalock le logger libère le fichier dès qu'il n'écrit pas dedant donc on peut le lire pour le tester.

    Merci beaucoup =)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Test unitaire sur les vue d'une base de données
    Par bragon dans le forum Tests et Performance
    Réponses: 4
    Dernier message: 04/02/2009, 12h29
  2. Tests logiques sur les flags : cmp /jna
    Par lylia SI dans le forum Assembleur
    Réponses: 2
    Dernier message: 27/09/2006, 17h42
  3. Question sur les logs
    Par Madmac dans le forum Administration système
    Réponses: 5
    Dernier message: 06/03/2006, 21h47
  4. Comment faire un tail -f sur les logs binaires mysql-bin ?
    Par mediaforest dans le forum Requêtes
    Réponses: 8
    Dernier message: 24/09/2005, 12h34
  5. Realiser des tests exhaustifs sur les String
    Par Sarrus dans le forum Langage
    Réponses: 9
    Dernier message: 07/07/2005, 11h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo