Xunit 测试没有将 appsettings 文件复制到输出目录
Xunit test not copying appsettings file to output directory
我有一个针对 .NET Core 3.1 和 .NET Framework 4.6.1 的 Xunit 测试项目。我的测试加载了一个 appsettings.json 文件 as detailed by Rick Strahl。测试运行时,即使我已将文件属性设置为 Content 类型并始终复制到输出目录,但测试运行时该文件实际上并不存在。
现在我能够在另一个单元测试项目中成功地使用这种技术,但不同的是,一个只针对 .NET Core 3.1。在工作测试项目中,Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)
是 C:\git\myproject\src\myproject.tests\bin\Debug\netcoreapp3.1
(即构建输出目录)。但是,在失败的测试中,位置是 C:\Users\hcheng\AppData\Local\Temp\ffe98278-56d3-41f6-8864-e50c74cb2c08\ffe98278-56d3-41f6-8864-e50c74cb2c08\assembly\dl3ba8de87b2a96ca_54b8d601
并且当我打开 Windows Explorer 到该路径时,该文件夹中的唯一内容是单元测试项目的 DLL 和 PDB,并且 __AssemblyInfo__.ini
(其他依赖项中的 none)。
我是 .NET Core 的新手,所以我不能真正说出我做错了什么,但我怀疑多目标是相关的。由于该临时位置缺少其他依赖项,我也担心如果我克服了加载配置文件的障碍,之后我仍然会遇到 TypeLoadExceptions。
在此先感谢您的帮助。
我最终在 How to refer to test files from Xunit tests in Visual Studio? 中找到了答案。
而不是 Assembly.GetExecutingAssembly().Location
,我不得不使用 new Uri(Assembly.GetExecutingAssembly().CodeBase).LocalPath
。
我有一个针对 .NET Core 3.1 和 .NET Framework 4.6.1 的 Xunit 测试项目。我的测试加载了一个 appsettings.json 文件 as detailed by Rick Strahl。测试运行时,即使我已将文件属性设置为 Content 类型并始终复制到输出目录,但测试运行时该文件实际上并不存在。
现在我能够在另一个单元测试项目中成功地使用这种技术,但不同的是,一个只针对 .NET Core 3.1。在工作测试项目中,Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)
是 C:\git\myproject\src\myproject.tests\bin\Debug\netcoreapp3.1
(即构建输出目录)。但是,在失败的测试中,位置是 C:\Users\hcheng\AppData\Local\Temp\ffe98278-56d3-41f6-8864-e50c74cb2c08\ffe98278-56d3-41f6-8864-e50c74cb2c08\assembly\dl3ba8de87b2a96ca_54b8d601
并且当我打开 Windows Explorer 到该路径时,该文件夹中的唯一内容是单元测试项目的 DLL 和 PDB,并且 __AssemblyInfo__.ini
(其他依赖项中的 none)。
我是 .NET Core 的新手,所以我不能真正说出我做错了什么,但我怀疑多目标是相关的。由于该临时位置缺少其他依赖项,我也担心如果我克服了加载配置文件的障碍,之后我仍然会遇到 TypeLoadExceptions。
在此先感谢您的帮助。
我最终在 How to refer to test files from Xunit tests in Visual Studio? 中找到了答案。
而不是 Assembly.GetExecutingAssembly().Location
,我不得不使用 new Uri(Assembly.GetExecutingAssembly().CodeBase).LocalPath
。