我在新的.net核心框架中遇到集成测试的一个问题。
我已经在appsettings.json配置中添加了一些自定义数据,并希望在某些类中使用它。
"Data": {
"FolderName": "Data",
"Files": {
"Json": "work.json",
"Csv": "work.csv"
}
}
但是当我使用IConfiguration接口获取类中的数据时,folderName
变量为空。
private void InitializeDataFileFullPath(IConfiguration configuration)
{
var root = Directory.GetCurrentDirectory();
var folderName = configuration["Data:FolderName"];
if (folderName == null)
{
throw new NullReferenceException("Folder name with data files isn't specified in appsettings.json");
}
同样root
变量显示的路径不正确 - ".IntegrationTests\bin\Debug\netcoreapp2.0"
,但我希望看到像\.WebApi\
我关注this手册。我还想做there, 之类的内容,但不再有project.json文件 。
P.S。
感谢您的任何建议。
(添加) 我的帖子的主要内容是从appsettings获取集成测试和程序的常见运行显示不同的值。我希望它是一样的。
答案 0 :(得分:0)
您使用的是appsettings的开发版本吗?
默认情况下,ASP.NET Core项目附带两个appsettings.json。
Visual Studio 2017中的示例
答案 1 :(得分:0)
我最好的猜测是你有两个可执行文件:一个是你的网络应用程序,另一个是你的集成测试项目。每个可执行文件都需要自己的appsettings.json
:您的集成测试可执行文件无法从您的Web应用程序项目中神奇地找到appsettings.json
。
奇怪的是,如果你按照你提到的指南,GetProjectPath
方法应该找到创建配置对象的适当路径。
答案 2 :(得分:-1)