我使用 CSV 文件作为我的 MSTest 单元测试的数据源。我的想法是为 CSV 文件生成动态文件路径,将它们存储在一个变量中,然后将变量传递到 databasesource 的 ConnectionString 中以进行单元测试。
但是,现在我了解到我们不能在数据源连接字符串中传递变量。知道如何使文件路径动态化,因为单元测试 dll 将在不同的机器上执行,并且静态路径不是一个选项。
CSV 文件已添加到解决方案中。
我使用 CSV 文件作为我的 MSTest 单元测试的数据源。我的想法是为 CSV 文件生成动态文件路径,将它们存储在一个变量中,然后将变量传递到 databasesource 的 ConnectionString 中以进行单元测试。
但是,现在我了解到我们不能在数据源连接字符串中传递变量。知道如何使文件路径动态化,因为单元测试 dll 将在不同的机器上执行,并且静态路径不是一个选项。
CSV 文件已添加到解决方案中。
public string GetAbsolutePath(string relativePath)
{
string path = System.Reflection.Assembly.GetCallingAssembly().CodeBase;
int lastIndex = path.LastIndexOf("bin", StringComparison.OrdinalIgnoreCase);
string actualPath = path.Substring(0, lastIndex);
string projectPath = new Uri(actualPath).LocalPath;
string absolutePath = projectPath + relativePath;
return absolutePath;
}
上面的代码是 c# 将在任何机器上运行以访问项目中的文件。即使您使用不同的机器,此代码也会在“projectPath”变量中提供您的项目文件夹路径,因为它是参考您的 dll 文件生成的。您唯一需要做的就是传递您想要在项目中访问的文件夹或文件的相对路径。
注意: - 在您的项目“projectPath”变量中找到 bin 文件夹将为您提供路径,然后相应地将您的相对路径作为参数传递。请调试功能以获得清晰的理解。
如果您需要澄清,请告诉我