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

Test Discussion :

Tester l'unicité de l'exécution d'une application


Sujet :

Test

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Tester l'unicité de l'exécution d'une application
    Bonjour,

    Étant débutant en développement, et souhaitant prendre de bonnes habitudes (ou tout au moins ne pas prendre de mauvaises), j'essaye de me mettre aux tests unitaires avec Nunit en VB.NET 2.0.

    Ma question paraitra sans doute simple pour beaucoup, comment tester qu'une application ne se lance qu'une fois.

    Merci,

  2. #2
    Membre averti

    Inscrit en
    Juillet 2008
    Messages
    186
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 186
    Points : 350
    Points
    350
    Par défaut
    Bonjour,

    Ma réponse risque d'être déroutante, mais pourquoi vouloir que l'application ne se lance qu'une seule fois ? Est-ce que deux utilisateurs, dans deux sessions différentes n'auraient pas envie de pouvoir les lancer simultanément ? Si c'est pour empêcher à deux application d'accéder à une ressource (du hardware par exemple) simultanément, est-ce que ce n'est pas cette resource qui doit empêcher deux accès simultanés.

    Pour l'implémenter, il faut passer par un moyen de communication inter processus.

    Didier

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci pour ta réponse,

    En fait, ce besoin est dû au contexte.
    Pour faire court, l'application est une application de type windows form, déployée localement sur 2 ou 3 postes dont 1 des postes sera utilisé par plusieurs utilisateurs pas forcément à l'aise avec l'outil informatique ...
    Il arrive couramment de voir la même application lancée plusieurs fois sur le même poste, mais cachée par d'autres fenêtres, ce que je préfèrerais éviter pour plein de raisons.

    Si ce que je décris est ce que tu appelles "accéder à la même ressource", il faut donc que ce soit l'appli qui empêche l'exécution une deuxième fois, et si "Pour l'implémenter, il faut passer par un moyen de communication inter processus", va falloir que j'apprennes ce qu'est un moyen de communication inter processus (je suis vraiment un débutant en développement, je le rappelle )

    Heureusement, ils sont pas trop pressé ...

  4. #4
    Expert éminent sénior

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Points : 12 465
    Points
    12 465
    Par défaut
    Salut,

    techniquement, tu as une fonction dans le framework, dans le namespace System.Diagnostics, qui permets de recuperer tous les processus qui ont un nom donne :
    Process.GetProcessesByName("nom du processus")

    Pour faire un test comme ca, c'est un peu tordu, parce que tu veux que ton test doit verifier que ton appli ne peut pas etre lancee deux fois...alors que le test en lui meme (avec nunit) ne s'execute pas dans le contexte de ton appli...

    Tu peux eventuellement utiliser toujours dans System.Diagnostics, Process.Start, avec qq chose dans le genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Dim monAppli As String = "MonAppli.exe"
    Dim myProcess As Process = System.Diagnostics.Process.Start(monAppli )
    System.Diagnostics.Process.Start(monAppli )
    
    Assert.IsEqual(Process.GetProcessesByName(monAppli).Count, 1)
    myProcess.Kill()
    Assert.IsEqual(Process.GetProcessesByName(monAppli).Count, 0)
    Mais je trouve ca moche

    Mon Blog

    The Cake is still a lie !!!



    Vous voulez contribuer à la rubrique .NET ? Contactez-moi par MP.
    Vous voulez rédiger des articles pour la rubrique .NET ? Voici la procédure à suivre.

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci pour ta réponse,

    C'est vrai que ce que je demande est un peu tordu finalement (serais-je tordu, fichtre alors !! )

    Je vais qd même creuser un peu dans system.diagnostic.process, parce qu'il y doit y avoir quelques trucs intéressants pour empêcher qu'un process se lance deux fois.
    Donc globalement ça répond à ma question, devrait y avoir moyen de mettre en place qqch qui m'ouvre une textbox avec un message "Application déjà ouverte" qd l'appli est déjà ouverte, et qui referme l'appli ouverte une deuxième fois.

    Après, est-ce que ça vaut vraiment le coup de faire un test unitaire qui vérifie que l'application lancée est bien lancée, je pense que ça doit être dû à un traumatisme Windows quelconque, je vais en parler à mon psy

    Merci pour vos réponses

Discussions similaires

  1. erreur d'excution d une application
    Par dalhia dans le forum VB.NET
    Réponses: 3
    Dernier message: 26/09/2006, 17h00
  2. exécution d'une application AWT sur linux
    Par hammag dans le forum Langage
    Réponses: 6
    Dernier message: 21/07/2006, 10h59
  3. Réponses: 3
    Dernier message: 19/07/2006, 21h54
  4. Exécution d'une application dans un formulaire
    Par julio02200 dans le forum Access
    Réponses: 1
    Dernier message: 13/06/2006, 14h37
  5. Comment faire un exécutable d'une application access
    Par b_steph_2 dans le forum Runtime
    Réponses: 4
    Dernier message: 09/02/2006, 16h21

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