2009-07-23 21 views
7

Istnieje narzędzie wiersza poleceń, dla którego musimy napisać testy automatyczne. Nasz framework testowy jest napisany w C# i szukałem bibliotek .NET, które pozwoliłyby mi na automatyzację (wiem, że mogę używać klasy Process, przekierowuję IO, czy waliduję, ale nie chcę na nowo odkrywać koła Jeśli to możliwe). Idealnie szukam czegoś w rodzaju biblioteki expect. Jakieś sugestie?Automatyzacja linii poleceń - oczekiwać odpowiednika

Odpowiedz

0

Zdaję sobie sprawę, że jest to stare pytanie, ale nikt nie odpowiedział.

IMO, zawsze musiałem wymyślać koła za każdym razem, gdy to zrobiłem (tj. Klasa procesu, przekierowanie StdIO, StdErr, itp. I przeanalizować wyjście). Pomyślałem, że w tym celu ponownie wykorzystałem abstrakcyjną klasę bazową.

Może ktoś jeszcze wie o bibliotece, ale ja tego nie robię.

Jednak dam ostrzeżenie, że widziałem przypadki, w których przekierowanie IO nie zawsze jest prawidłowo obsługiwane w środowisku .Net (w zależności od tego, jak program zapisuje do stdio lub stderr, jeśli ukrywasz okno lub nie , jeśli masz wiele wątków i kilka innych warunków), co prowadzi do stanu wyścigowego, który powoduje nieskończone zawieszenie.

-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)); 
      } 
    } 
}