【发布时间】:2018-05-24 22:29:50
【问题描述】:
我正在开发一个项目,我正在尝试将多个库从 .NET Framework 4.5.2 移植到 .NET Core 2,并且在尝试读取单元测试中的旧 app.config appsettings 时遇到了一些问题.为了将问题减少到最低限度的重现场景,我在 VS2017 中创建了以下项目:
我有 app.config 文件:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings>
<add key="TestKey" value="20" />
</appSettings>
<configSections>
</configSections>
</configuration>
还有 UnitTest1.cs 文件:
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System.Configuration;
namespace SimpleTestsUnits
{
[TestClass]
public class UnitTest1
{
[TestMethod]
public void FromConfigurationManager()
{
Assert.AreEqual("20", ConfigurationManager.AppSettings["TestKey"]);
}
}
}
在构建此项目时,会生成 SimpleTestsUnits.dll,并使用与 SimpleTestsUnits.dll 文件相同文件夹中的 app.config 文件的内容创建 SimpleTestsUnits.dll.config。
所以,当我使用 VS2017 运行单元测试时,“TestKey”的值始终为空,如果我调试到 ConfigurationManager.AppSettings 那里没有加载任何密钥。
抛出异常: 'Microsoft.VisualStudio.TestTools.UnitTesting.AssertFailedException' 在 Microsoft.VisualStudio.TestPlatform.TestFramework.dll 中出现异常 类型 'Microsoft.VisualStudio.TestTools.UnitTesting.AssertFailedException' 发生在 Microsoft.VisualStudio.TestPlatform.TestFramework.dll 但 未在用户代码中处理 Assert.AreEqual 失败。预期:。 实际:.
我在这里缺少什么?这不应该工作吗?
【问题讨论】: