我在与Visual Studio中的项目相同的解决方案中设置了一个单元测试项目。单元测试是通过Visual Studio中内置的单元测试工具完成的(包含在Premium及以上版本中)。我需要在测试项目中运行单元测试时加载项目本身路径中的文件,而不是测试项目。
要包含的文件是主项目的一部分,并具有以下属性:
我需要为依赖于此文件的函数编写单元测试,否则我将遇到错误状态,并且无法为该函数编写100%覆盖率的测试。
如何从单元测试项目中获取实际项目的执行路径?
编辑:特定功能读取配置文件中的所有行,并在列表中一次存储一行。示例代码如下:
public List<string> LoadConfigFile() {
List<string> models = new List<string>();
StreamReader sr = new StreamReader(Path.GetDirectoryName(Application.ExecutablePath) + @"\" + Properties.Resources.SupportedModelsConfigFile);
while ((line = sr.ReadLine()) != null)
{
models.Add(line);
}
sr.Close();
return models;
}
主要问题:Application.ExecutablePath在IDE内部或外部运行程序时工作正常,但在运行单元测试时,它会将我发送到visual studio中的目录,特别是此目录:
C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\QTAgent32.exe
答案 0 :(得分:13)
您可以设置变量以获取从
启动应用程序的路径var execPath = AppDomain.CurrentDomain.BaseDirectory;