小编afl*_*pes的帖子

app.config没有加载.Net Core MSTests项目

我正在研究一个项目,我正在尝试将几个库从.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>
Run Code Online (Sandbox Code Playgroud)

和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"]);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在构建此项目时,将生成SimpleTestsUnits.dll,并使用SimpleTestsUnits.dll文件的同一文件夹中的app.config文件的内容创建SimpleTestsUnits.dll.config.

因此,当我使用VS2017运行单元测试时,"TestKey"的值始终为null,如果我调试到ConfigurationManager.AppSettings,则没有加载密钥.

抛出异常:Microsoft.VisualStudio.TestPlatform.TestFramework.dll中的"Microsoft.VisualStudio.TestTools.UnitTesting.AssertFailedException"Microsoft.VisualStudio.TestPlatform.TestFramework.dll中出现"Microsoft.VisualStudio.TestTools.UnitTesting.AssertFailedException"类型的异常但未在用户代码中处理Assert.AreEqual失败.预期:<20>.实际:<(空)>.

我在这里错过了什么?这不应该有效吗?

c# .net-core

16
推荐指数
2
解决办法
2253
查看次数

标签 统计

.net-core ×1

c# ×1