【发布时间】:2010-12-22 16:47:34
【问题描述】:
我有一种方法可以在对文件内容进行一些操作之前测试文件是否存在,如下所示:
Private Sub AddHeaderToLogFile()
''#Only if file does not exist
If Not File.Exists(_logPath) Then
Dim headerLogger As Logger
headerLogger = LogManager.GetLogger("HeaderLogger")
''#Use GlobalDiagnosticContext in 2.0, GDC in pre-2.0
NLog.GlobalDiagnosticsContext.Set("appName", _appName)
NLog.GlobalDiagnosticsContext.Set("fileVersion", _fileVersion)
NLog.GlobalDiagnosticsContext.Set("logId", 0)
headerLogger.Info("")
End If
End Sub
想法是,如果文件不存在,则通过调用 NLog 记录器实例生成文件,此时创建文件并插入指定的标头信息。该方法在应用程序本身上运行良好,但是我有一个简单的 NUnit 测试,它实现了一个测试方法来验证文件是否按预期创建和填充。当我使用调试器单步执行时,我发现 '_logPath' 设置为:
D:\Documents and Settings\TE602510\Local Settings\Temp\nunit20\ShadowCopyCache\4288_634286300896838506\Tests_-1937845265\assembly\dl3\7cdfe61a\aa18c98d_f0a1cb01\logs\2010-12-22.log
不幸的是,尽管文件确实存在,但对 File.Exists 的调用返回 false。从之前对配置路径的查看来看,上述路径对于这些 NUnit 测试似乎是正确的。有没有人知道这里发生了什么以及我需要做什么才能获得预期的结果?根据 XP 文件系统,日志文件的路径名是:
D:\Documents and Settings\TE602510\My Documents_VSSWorkArea\PsalertsIp\Tests\bin\Debug\logs
亲切的问候
保罗·J.
【问题讨论】:
-
对我来说听起来像是框架的错误。