在从 xproj、porject.json 移动到 csproj 时保存 appsettings.json 的集成测试映射
save integration test mapping of appsettings.json on moving from xproj,porject.json to csproj
我正在尝试将我的 sln 从 xproj+project.json 迁移到 csproj。
我的集成测试项目 project.json:
"buildOptions": {
"copyToOutput": {
"mappings": {
"appsettings.json": "../../src/WebApp/appsettings.json",
"appsettings.testing.json": "../../src/WebApp/appsettings.testing.json"
}
}
}
当我用 visual studio 2017 打开 .sln 时,它自动转换为:
<ItemGroup>
<None Update="..\..\src\WebApp\appsettings.testing.json">
<Link>appsettings.testing.json</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="..\..\src\WebApp\appsettings.json">
<Link>appsettings.json</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
但现在集成测试停止工作,因为它找不到 appsettings.json 文件。
它抛出:
Error Message:
System.IO.FileNotFoundException : The configuration file 'appsettings.json' was not found and is not optional. The physical path is 'C:\Work\billing-app\test\IntegrationTests\bin\Debug\netcoreapp1.1\appsettings.json'.
我该如何修复它,让它继续将真实的配置文件复制到集成测试项目中? 10 倍!
解决方案是将 csproj 添加到我的 Web 项目中:
<ItemGroup>
<Content Update="appsettings.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
并且有效。
(integrationTest项目csproj上面提到的几行可以删除)
我正在尝试将我的 sln 从 xproj+project.json 迁移到 csproj。 我的集成测试项目 project.json:
"buildOptions": {
"copyToOutput": {
"mappings": {
"appsettings.json": "../../src/WebApp/appsettings.json",
"appsettings.testing.json": "../../src/WebApp/appsettings.testing.json"
}
}
}
当我用 visual studio 2017 打开 .sln 时,它自动转换为:
<ItemGroup>
<None Update="..\..\src\WebApp\appsettings.testing.json">
<Link>appsettings.testing.json</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Update="..\..\src\WebApp\appsettings.json">
<Link>appsettings.json</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
但现在集成测试停止工作,因为它找不到 appsettings.json 文件。 它抛出:
Error Message: System.IO.FileNotFoundException : The configuration file 'appsettings.json' was not found and is not optional. The physical path is 'C:\Work\billing-app\test\IntegrationTests\bin\Debug\netcoreapp1.1\appsettings.json'.
我该如何修复它,让它继续将真实的配置文件复制到集成测试项目中? 10 倍!
解决方案是将 csproj 添加到我的 Web 项目中:
<ItemGroup>
<Content Update="appsettings.json">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
并且有效。
(integrationTest项目csproj上面提到的几行可以删除)