gpt4 book ai didi

asp.net-mvc - 单元测试适配器在 ASP.NET MVC 中抛出异常 : Unable to load one or more. ..

转载 作者:行者123 更新时间:2023-12-05 00:43:44 24 4
gpt4 key购买 nike

使用 ASP.NET MVC 1.0(当前)我在 x64 机器(Server 2008)上使用 Visual Studio 2008 创建了一个新的默认 ASP.NET MVC 项目,并接受所有默认值并构建并运行它。除了必须将 System.Web.* 程序集设置为“复制本地”之外,它还会运行并显示默认的 Web 应用程序。当我尝试在这个项目上运行单元测试时,我得到:

单元测试适配器抛出异常:无法加载一种或多种请求的类型。检索 LoaderExceptions 属性以获取更多信息。

现在,如果我在 x86 机器(Server 2003)上使用 VS2008 重复相同的练习,那么所有 27 个默认单元测试都可以正常运行。 (另外我不需要将 System.Web.* 程序集标记为“复制本地”)

解决异常的想法?

更多信息:
在尝试了一些建议的解决方案后,我开始注释掉由新项目生成的部分样板测试代码。因此,我认为包含以下类之一会产生错误:

    public class MockIdentity : IIdentity
{
public string AuthenticationType
{
get
{
return "MockAuthentication";
}
}

public bool IsAuthenticated
{
get
{
return true;
}
}

public string Name
{
get
{
return "someUser";
}
}
}

public class MockPrincipal : IPrincipal
{
IIdentity _identity;

public IIdentity Identity
{
get
{
if (_identity == null)
{
_identity = new MockIdentity();
}
return _identity;
}
}

public bool IsInRole(string role)
{
return false;
}
}

public class MockMembershipUser : MembershipUser
{
public override bool ChangePassword(string oldPassword, string newPassword)
{
return newPassword.Equals("newPass");
}
}

public class MockHttpContext : HttpContextBase
{
private IPrincipal _user;

public override IPrincipal User
{
get
{
if (_user == null)
{
_user = new MockPrincipal();
}
return _user;
}
set
{
_user = value;
}
}
}

最佳答案

首先,您是否在 Release 配置中尝试过?您是否对解决方案进行了清理?

您是否尝试过构建您的测试项目?取出测试的源文件,从解决方案中删除项目并添加一个引用 MVC 应用程序的新测试项目。然后重新添加测试源文件。

编辑

您正在使用和实现的类和接口(interface)是否在您的测试范围内?

编辑
它是引用 x64 而不是 x86 dll 吗?

关于asp.net-mvc - 单元测试适配器在 ASP.NET MVC 中抛出异常 : Unable to load one or more. ..,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/733114/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com