代码之家  ›  专栏  ›  技术社区  ›  Daren Thomas

如何从nunit测试访问项目文件

  •  5
  • Daren Thomas  · 技术社区  · 15 年前

    我有一些使用Resharpers“从解决方案运行所有测试”功能运行的测试。正在测试的某个类与包含该类的程序集在同一文件夹中的某个文件存在依赖关系。此文件通过msbuild复制到输出目录(将“copy to output directory”设置为“copy always”)。

    问题: 测试不是从常规程序集输出目录运行的,而是在我的用户配置文件中的一些临时位置。

    因此,我真的不知道在哪里查找该文件-测试运行程序不会将其复制到那里。我能强迫吗?

    2 回复  |  直到 11 年前
        1
  •  4
  •   Samuel Jack    15 年前

    听起来您在打开卷影复制选项的情况下运行测试。

    转到Resharper->选项,然后选择单元测试选项卡(位于列表底部)。取消选中“正在测试的卷影副本程序集”,然后重试。

        2
  •  8
  •   Roman    11 年前

    在这种情况下,nunit网站建议使用assembly.codebase属性,这将导致我需要的bin/debug。

    “注意:如果您试图禁用卷影复制以访问与程序集位于同一目录中的文件,您应该注意,还有其他选择。请考虑使用assembly.codebase属性而不是assembly.location。“

    .location返回了uri-style-address“file:///d://projects…”,所以我使用的实际代码是

    string applicationDirectory = new Uri(Path.GetDirectoryName(Assembly.GetExecutingAssembly().CodeBase)).LocalPath;