命令行自动化 - 期望等效

时间:2009-07-23 06:24:55

标签: c# .net automated-tests testing

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

2 个答案:

答案 0 :(得分:0)

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

IMO,我每次完成此操作时都必须重新发明轮子(即Process类,重定向StdIO,StdErr等并解析输出)。想了想,我为此目的重用了一个抽象基类。

也许其他人知道有一个库可以做到这一点,但我没有。

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

答案 1 :(得分:-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));
            }
    }
}