在单元测试中使用RegEx检查日志文件中的条目

时间:2013-02-11 04:53:30

标签: c# .net unit-testing nunit

我有log4net日志文件,记录某些错误的条目。我必须在30秒后检查它记录在日志文件中的第一个错误。我相信Reg Ex是可以做到的。 到目前为止,我有:

string dataToLog = "certain logged error message";
var matches = Regex.Matches(File.ReadAllText(logfile), dataToLog);
Assert.AreEqual(3, matches.Count);

以上代码适用于整个文件中的错误数量。但我需要 添加到它的代码可以检查并返回布尔值,即20秒后它记录的第一个错误。知道如何实现这个目标吗?

2 个答案:

答案 0 :(得分:1)

您可以在阅读日志文件之前添加以下代码:

DateTime dt30 = DateTime.Now.AddSeconds(30);
            while(DateTime.Now!=dt30)
            {
                continue;
            }

答案 1 :(得分:0)

您可以冻结当前线程给定的时间段:

Start();
Thread.Sleep("30000"); // 30 sec
Read();

或支持回调或事件。