MStest使用多个配置文件为类库抛出错误

时间:2018-06-19 05:56:30

标签: c# .net app-config mstest class-library

我创建了一个类库getConfigData,它有一个方法 public class Class1 { public string getConfigData() { string configData = ConfigurationManager.AppSettings["key"].ToString(); return configData; } } 。此方法从配置文件中读取数据。

ConsoleAppConfig

现在我有一个控制台应用程序static void Main(string[] args) { Class1 c = new Class1(); string data = c.getConfigData(); Console.Write(data); } ,其中我已经给出了类库的引用。在main方法中,我为库类创建了一个对象并调用了该方法。

dev.config

此控制台应用程序有2个不同的配置文件prod.config<appSettings configSource="dev.config" /> 。在主App.config文件中,我使用了configSource来映射相应的配置文件。

<?xml version="1.0" encoding="utf-8" ?>
<appSettings>
    <add key="key" value="dev" />
</appSettings>

Dev.config文件如下所示:

dev

直到这里它工作正常。也就是说,当我运行控制台应用程序时,该方法返回public class Class1Tests { [TestMethod()] public void getConfigDataTest() { Class1 obj = new Class1(); var result = obj.getConfigData(); } }

现在,我已经为这个类库创建了一个MSTest项目。

sc.textfile("hdfs://user/cloudera/csvfiles").getNumPartitions

现在问题是,当我运行此测试时,它会抛出一个错误说
“在MultipleConfigFiles.dll中发生了'System.NullReferenceException'类型的异常,但未在用户代码中处理。 附加信息:对象引用未设置为对象的实例。“

由于配置文件位于ConsoleApplication中,因此该方法无法从那里读取appsetting变量。有没有什么方法可以全局维护配置文件,以便它们可以单独使用,或者有更好的方法来处理它。

任何意见都表示赞赏。谢谢。

1 个答案:

答案 0 :(得分:0)

如果不复制文件,您可以链接现有单元测试项目中的文件。 您可以尝试使用图片链接(https://grantwinney.com/content/images/2014/04/AddExistingFileAsLink-002.png

中提到的相同内容

Google这个术语“Visual Studio - 添加文件为链接”以获取更多信息

图片来源:https://grantwinney.com