>>>在单元测试中访问文件:一种可靠的方法,用于确定测试程序集的目录
>单元测试通常需要相对于测试组件访问文件。 但是,由于测试环境(例如测试跑者,临时目录)的变化,找到组件目录可能很棘手。本指南提供了一个强大的解决方案。
查找汇编目录 的挑战
目的是获得当前组件的目录路径,不包括文件名。 常见的方法通常不足:
Environment.CurrentDirectory
:这返回当前的工作目录,这可能与总成的位置有所不同。 例如,在某些测试跑者中,它指向跑步者的目录,而不是测试项目的目录。
Assembly.GetAssembly(typeof(AssemblyType)).Location
:这些提供了完整的汇编路径Assembly.GetExecutingAssembly().Location
包括fileName,而不仅仅是目录。
解决方案:利用Assembly.CodeBase
>
。该属性将大会的路径返回为URI。 通过使用Assembly.CodeBase
和UriBuilder.UnescapeDataString
,我们可以可靠地提取目录路径:Path.GetDirectoryName
>
<code class="language-csharp">public static string GetAssemblyDirectory() { string codeBase = Assembly.GetExecutingAssembly().CodeBase; UriBuilder uri = new UriBuilder(codeBase); string path = Uri.UnescapeDataString(uri.Path); return Path.GetDirectoryName(path); }</code>此方法始终返回正确的目录路径,无论测试环境如何
以上是如何在单位测试中可靠地确定测试组件的目录路径?的详细内容。更多信息请关注PHP中文网其他相关文章!