当单元测试的主机类型为“Moles”时,我们在通过单元测试访问 .net 配置文件(例如 app.config 和 web.config)中的信息时遇到问题。这引起了很多头痛,所以我希望有人知道可以做什么。
我们使用的是 Visual Studio 2010,我相信我们已经在安装了 VS 2010 SP1 的机器和未安装 SP1 的机器上进行了尝试,并在 32 位和 64 位机器上进行了尝试。
我冒昧地将测试简化为最简单的术语。可以通过编写由以下两个文件组成的单元测试项目并在取消注释唯一的注释行后运行测试来重新创建该问题。该测试在没有主机类型的情况下工作,但是当您将 Moles 作为主机类型引入时,测试中的 null 断言会失败。我们不确定为什么。
一、配置文件App.config:
<?xml version="1.0"?>
<configuration>
<connectionStrings>
<add name="Connection" connectionString="Something" />
</connectionStrings>
</configuration>
接下来,包含单个测试的测试类:
namespace TestProject
{
using System.Configuration;
using Microsoft.VisualStudio.TestTools.UnitTesting;
[TestClass]
public class UnitTest
{
[TestMethod]
//[HostType("Moles")]
public void TestMethod()
{
var data = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
Assert.IsNotNull(data.ConnectionStrings.ConnectionStrings["Connection"]);
}
}
}
如果有人能提供任何见解,我将不胜感激。
非常感谢,
缺口