MStest 使用多个配置文件为 Class 库抛出错误
MStest throwing errors for Class library using multiple config files
我创建了一个 class 库 MultipleConfigFiles
,它有一个方法 getConfigData
。此方法从配置文件中读取数据。
public class Class1
{
public string getConfigData()
{
string configData = ConfigurationManager.AppSettings["key"].ToString();
return configData;
}
}
现在我有一个控制台应用程序 ConsoleAppConfig
,我在其中给出了 class library.In 主要方法的引用,我已经为库创建了一个对象 class 并调用了方法。
static void Main(string[] args)
{
Class1 c = new Class1();
string data = c.getConfigData();
Console.Write(data);
}
此控制台应用程序有 2 个不同的配置文件 dev.config
和 prod.config
。在主 App.config 文件中,我使用 configSource 来映射适当的配置文件。
<appSettings configSource="dev.config" />
Dev.config 文件如下所示:
<?xml version="1.0" encoding="utf-8" ?>
<appSettings>
<add key="key" value="dev" />
</appSettings>
直到这里它工作 fine.That 是,当我 运行 控制台应用程序时,方法 returns dev
.
现在,我已经为这个 class 库创建了一个 MSTest 项目。
public class Class1Tests
{
[TestMethod()]
public void getConfigDataTest()
{
Class1 obj = new Class1();
var result = obj.getConfigData();
}
}
现在的问题是,当我运行这个测试时,它抛出一个错误说
“'System.NullReferenceException' 类型的异常发生在 MultipleConfigFiles.dll 中,但未在用户代码中处理。
附加信息:未将对象引用设置为对象的实例。"
由于配置文件位于 ConsoleApplication 中,该方法无法从那里读取应用程序设置变量。有什么方法可以全局维护配置文件,以便它们都单独使用,或者有什么更好的方法来处理这个问题。
任何输入都是appreciated.Thanks。
无需复制文件,您就可以 Link 现有单元测试项目中的文件。
您可以尝试与图片中提到的相同 Link (https://grantwinney.com/content/images/2014/04/AddExistingFileAsLink-002.png)
Google 这个术语 "Visual Studio - Add File As Link" 了解更多信息
我创建了一个 class 库 MultipleConfigFiles
,它有一个方法 getConfigData
。此方法从配置文件中读取数据。
public class Class1
{
public string getConfigData()
{
string configData = ConfigurationManager.AppSettings["key"].ToString();
return configData;
}
}
现在我有一个控制台应用程序 ConsoleAppConfig
,我在其中给出了 class library.In 主要方法的引用,我已经为库创建了一个对象 class 并调用了方法。
static void Main(string[] args)
{
Class1 c = new Class1();
string data = c.getConfigData();
Console.Write(data);
}
此控制台应用程序有 2 个不同的配置文件 dev.config
和 prod.config
。在主 App.config 文件中,我使用 configSource 来映射适当的配置文件。
<appSettings configSource="dev.config" />
Dev.config 文件如下所示:
<?xml version="1.0" encoding="utf-8" ?>
<appSettings>
<add key="key" value="dev" />
</appSettings>
直到这里它工作 fine.That 是,当我 运行 控制台应用程序时,方法 returns dev
.
现在,我已经为这个 class 库创建了一个 MSTest 项目。
public class Class1Tests
{
[TestMethod()]
public void getConfigDataTest()
{
Class1 obj = new Class1();
var result = obj.getConfigData();
}
}
现在的问题是,当我运行这个测试时,它抛出一个错误说
“'System.NullReferenceException' 类型的异常发生在 MultipleConfigFiles.dll 中,但未在用户代码中处理。
附加信息:未将对象引用设置为对象的实例。"
由于配置文件位于 ConsoleApplication 中,该方法无法从那里读取应用程序设置变量。有什么方法可以全局维护配置文件,以便它们都单独使用,或者有什么更好的方法来处理这个问题。
任何输入都是appreciated.Thanks。
无需复制文件,您就可以 Link 现有单元测试项目中的文件。 您可以尝试与图片中提到的相同 Link (https://grantwinney.com/content/images/2014/04/AddExistingFileAsLink-002.png)
Google 这个术语 "Visual Studio - Add File As Link" 了解更多信息