Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在单元测试中使用RegEx检查日志文件中的条目_C#_.net_Unit Testing_Nunit - Fatal编程技术网

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

C# 在单元测试中使用RegEx检查日志文件中的条目,c#,.net,unit-testing,nunit,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); 对于整个文件中的错误

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

string dataToLog = "certain logged error message";
var matches = Regex.Matches(File.ReadAllText(logfile), dataToLog);
Assert.AreEqual(3, matches.Count);
对于整个文件中的错误数量,上述代码可以正常工作。但我需要
添加可检查并返回布尔值的代码,即20秒后是否记录第一个错误。你知道如何做到这一点吗?

你可以在给定的时间段内冻结当前线程:

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

或支持回调或事件。

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

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

您的问题是“30秒后读取日志文件”还是“理解文件中的内容”?是的,问题是30秒后读取日志文件。您知道如何使用计时器吗?例如,在最后一行的第二行中,不是也应该是30吗?i、 e 30秒后第一个错误记录调整一个小注释:由于单元测试应该是快速的,我将使用术语集成测试。我要做的是读取日志文件中的第一个时间戳,然后添加30秒。您如何读取日志文件中的第一个时间戳?您可以放置日志文件的示例吗。