我创建了一个类库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变量。有没有什么方法可以全局维护配置文件,以便它们可以单独使用,或者有更好的方法来处理它。
任何意见都表示赞赏。谢谢。
答案 0 :(得分:0)
如果不复制文件,您可以链接现有单元测试项目中的文件。 您可以尝试使用图片链接(https://grantwinney.com/content/images/2014/04/AddExistingFileAsLink-002.png)
中提到的相同内容Google这个术语“Visual Studio - 添加文件为链接”以获取更多信息