2009-07-23 14 views
7

एक कमांड लाइन उपकरण है जिसके लिए हमें स्वचालित परीक्षण लिखने की आवश्यकता है। हमारा परीक्षण ढांचा सी # में लिखा गया है और मैं .NET पुस्तकालयों की तलाश में था जो मुझे स्वचालन करने देता था (मुझे पता है कि मैं प्रक्रिया वर्ग का उपयोग कर सकता हूं; आईओ को पुनर्निर्देशित करता हूं; सत्यापन करता हूं, लेकिन मैं पहिया को फिर से नहीं लेना चाहता अगर संभव हो तो)। आदर्श रूप में मैं expect लाइब्रेरी की तरह कुछ ढूंढ रहा हूं। कोई सुझाव?कमांड लाइन स्वचालन - समकक्ष

उत्तर

0

मुझे एहसास है कि यह एक पुराना सवाल है, लेकिन किसी ने भी जवाब नहीं दिया है।

आईएमओ, हर बार जब मैंने ऐसा किया है तो मुझे हमेशा पहिया को फिर से शुरू करना पड़ता है (यानी प्रोसेस क्लास, स्टडीओ, स्टडीर इत्यादि को रीडायरेक्ट करें और आउटपुट पार्स करें)। सोचा, मैंने इस उद्देश्य के लिए एक सार आधार वर्ग का पुन: उपयोग किया है।

शायद किसी और को ऐसा करने के लिए लाइब्रेरी के बारे में पता है, लेकिन मैं नहीं करता हूं।

हालांकि मैं एक चेतावनी दूंगा कि मैंने उन मामलों को देखा है जहां आईओ को पुनर्निर्देशित करना हमेशा नेट फ्रेमवर्क में सही ढंग से संभाला नहीं जाता है (इस पर निर्भर करता है कि प्रोग्राम स्टडीओ या स्टडरर को कैसे लिखता है, अगर आप विंडो छुपा रहे हैं या नहीं , यदि आप बहु-थ्रेडिंग हैं, और कुछ अन्य स्थितियां हैं) जो दौड़ की स्थिति की ओर अग्रसर होती हैं जिसके परिणामस्वरूप अनिश्चितकालीन लटकती है।

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