命令行自动化 – 期望等效

有一个命令行工具,我们需要编写自动化测试。 我们的测试框架是用C#编写的,我正在寻找可以让我进行自动化的.NET库(我知道我可以使用Process类;重定向IO;进行validation,但我不想重新发明轮子如果可能的话)。 理想情况下,我正在寻找像期待库这样的东西。 有什么建议?

我意识到这是一个老问题,但没有人回答。

IMO,我每次都这样做时总是不得不重新发明轮子(即Process类,重定向StdIO,StdErr等并解析输出)。 想到,我为此目的重用了一个抽象基类。

也许其他人知道图书馆这样做,但我没有。

但是我会发出一个警告,我已经看到在.Net框架中并不总是正确处理重定向IO的情况(取决于程序如何写入stdio或stderr,如果你是否隐藏窗口,如果你’重新multithreading,以及一些其他条件导致竞争条件导致无限期挂起。

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