2009-07-23 7 views
7

Có một công cụ dòng lệnh mà chúng tôi cần để viết các kiểm tra tự động. Khung kiểm thử của chúng tôi được viết bằng C# và tôi đang tìm kiếm các thư viện .NET để cho phép tự động hóa (tôi biết tôi có thể sử dụng lớp Process; chuyển hướng IO; thực hiện xác thực, nhưng tôi không muốn phát minh lại bánh xe nếu có thể). Lý tưởng nhất là tôi đang tìm kiếm thứ gì đó giống như thư viện expect. Bất kỳ đề xuất?Tự động hóa dòng lệnh - mong đợi tương đương

Trả lời

0

Tôi nhận thấy đây là câu hỏi cũ nhưng không ai trả lời.

IMO, tôi đã luôn luôn phải phát minh lại bánh xe mỗi lần tôi thực hiện điều này (tức là lớp Process, chuyển hướng StdIO, StdErr, vv và phân tích đầu ra). Suy nghĩ, tôi đã sử dụng lại một lớp cơ sở trừu tượng cho mục đích này.

Có thể ai đó khác biết thư viện để thực hiện việc này, nhưng tôi thì không.

Tuy nhiên, tôi sẽ đưa ra cảnh báo rằng tôi đã thấy các trường hợp chuyển hướng IO không phải lúc nào cũng được xử lý đúng cách trong khung .Net (tùy thuộc vào cách chương trình viết thành stdio hoặc stderr, nếu bạn đang ẩn cửa sổ đó hay không , nếu bạn đang đa luồng, và một vài điều kiện khác) dẫn đến một tình trạng cuộc đua dẫn đến treo vô thời hạn.

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