2009-07-23 20 views
7

È disponibile uno strumento da riga di comando per il quale è necessario scrivere test automatici. Il nostro framework di test è scritto in C# e stavo cercando le librerie .NET che mi avrebbero permesso di fare l'automazione (so che posso usare la classe Process, reindirizzare l'IO, fare la validazione, ma non voglio reinventare la ruota se possibile). Idealmente sto cercando qualcosa come una libreria expect. Eventuali suggerimenti?Automazione della riga di comando - prevedere l'equivalente

risposta

0

Mi rendo conto che questa è una domanda vecchia, ma nessuno ha risposto.

IMO, ho sempre dovuto reinventare la ruota ogni volta che ho fatto questo (vale a dire la classe di processo, reindirizzare StdIO, StdErr, ecc. E analizzare l'output). Pensiero, ho riutilizzato una classe base astratta per questo scopo.

Forse qualcun altro sa di una biblioteca per farlo, ma io no.

Tuttavia, avvertirò che ho visto casi in cui il reindirizzamento dell'IO non è sempre gestito correttamente nel framework .Net (a seconda di come il programma scrive su stdio o stderr, se si nasconde la finestra o no , se si esegue il multi-threading e alcune altre condizioni) che portano a una condizione di competizione che si traduce in un blocco indefinito.

-2

http://blog.iwanek.eu/expect-net/

using ExpectNet; 
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading; 
using System.Threading.Tasks; 

namespace ExampleApp 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      try 
      { 
       Console.WriteLine("ExampleApp"); 
       Session spawn = Expect.Spawn(new ProcessSpawnable("cmd.exe")); 
       spawn.Expect("c:", s => Console.WriteLine("got: " + s)); 
      } 
    } 
} 
Problemi correlati