gpt4 book ai didi

c# - 如何在运行时查找 C# .NET 集成测试中的物理路径?

转载 作者:太空宇宙 更新时间:2023-11-03 10:43:50 24 4
gpt4 key购买 nike

<分区>

为了围绕基于特定输入构建详细文件的旧遗留流程进行集成测试,我需要通过提供文件的完整路径来动态加载 DLL。

此测试将在许多不同的开发人员的机器上运行,这些机器并不总是共享相同的物理应用程序目录,但也会在许多服务器上运行,因为它通过持续集成过程,有时应用程序的多个实例会在同一台物理机器上运行。关键是,没有可依赖的标准路径来硬编码到此测试中。我真正需要的是某种机制,它可以告诉我测试在执行时所处的物理路径,然后我可以使用那里的相对路径始终可靠地找到应用程序安装中的 DLL。

由于这是在测试中,我不能依赖 HttpContext.Current.Server.MapPath() 或 Request.ApplicationPath 之类的东西,因为在测试运行时 Current 将为 null。

由于没有编写 hack 来部署 DLL,我需要动态加载到可能构建和运行应用程序的任何驱动器根目录下的一个特殊文件夹,有没有人知道一个好的 .NET 策略来找到在运行时测试?

我在 C# Web 应用程序中使用 NUnit 以及 Approval Test 样式断言,因此需要执行此操作的简单测试如下所示:

[Test]
public void ShouldGenerateFileConsistently()
{
string pathToDll = FindRelativePathToDllBasedOnPhysicalPath(); // <-- what I need to figure out

string generatedFileContents = OutputManager.GenerateReportUsingDynamicDll(pathToDll);

Approvals.Verify(generatedFileContents);
}

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com