Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# NUnit测试错误:无法加载类型';System.Web.HttpApplication';来自组件';System.Web,版本=4.0.0.0_C#_.net_Nunit - Fatal编程技术网

C# NUnit测试错误:无法加载类型';System.Web.HttpApplication';来自组件';System.Web,版本=4.0.0.0

C# NUnit测试错误:无法加载类型';System.Web.HttpApplication';来自组件';System.Web,版本=4.0.0.0,c#,.net,nunit,C#,.net,Nunit,我试图寻找这个,但提供的解决方案似乎不适合我。 我有一个现有的C#类库项目,目标是.NETFramework4.5.1,目前正在运行。我想介绍使用NUnit的单元测试。因此,我将NUnit测试项目(.NETCore3.1)添加到解决方案中。我在NUnit项目中添加了对.NETFramework4.5.1的引用,在构建之后,它看起来不错。 然而,我在下面创建了一个简单的测试,当我运行时,我得到了错误 Test Duration: 208 ms Message: System.

我试图寻找这个,但提供的解决方案似乎不适合我。 我有一个现有的C#类库项目,目标是.NETFramework4.5.1,目前正在运行。我想介绍使用NUnit的单元测试。因此,我将NUnit测试项目(.NETCore3.1)添加到解决方案中。我在NUnit项目中添加了对.NETFramework4.5.1的引用,在构建之后,它看起来不错。 然而,我在下面创建了一个简单的测试,当我运行时,我得到了错误

Test
   Duration: 208 ms

  Message: 
    System.TypeLoadException : Could not load type 'System.Web.HttpApplication' from assembly 'System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.
  Stack Trace: 
    RuntimeAssembly.GetExportedTypes()
    Assembly.get_ExportedTypes()
    ExtensionsForAssembly.GetNinjectModules(Assembly assembly)
    <>c.<Load>b__25_0(Assembly asm)
    SelectManySingleSelectorIterator`2.ToList()
    Enumerable.ToList[TSource](IEnumerable`1 source)
    KernelBase.Load(IEnumerable`1 m)
    KernelBase.Load(IEnumerable`1 assemblies)
    ModuleLoadExtensions.Load(IKernel kernel, Assembly[] assemblies)
    DirectRewardsController.ctor() line 24
    DirectRewardsTests.Test() line 18
直接控制器

public class DirectRewardsController : ApiController
    {
        StandardKernel DependencyKernel;
        
        private IDirectRewards justRewards;
        public DirectRewardsController()
        {
            DependencyKernel = new StandardKernel();
            DependencyKernel.Load(Assembly.GetExecutingAssembly());
            justRewards = DependencyKernel.Get<IDirectRewards>();
        }
        
         public HttpResponseMessage AddMember(MemberRequest model)
        {
            try
            {
                //Add Member record
            }
            catch (Exception ex)
            {
                return new HttpResponseMessage { StatusCode = HttpStatusCode.InternalServerError, Content = new StringContent(ex.Message) };
            }
        }
    }
公共类DirectRewardsController:ApicController
{
标准内核依赖内核;
私人奖励和私人奖励;
公共DirectRewardsController()
{
DependencyKernel=新标准内核();
Load(Assembly.getExecutionGassembly());
justRewards=DependencyKernel.Get();
}
公共HttpResponseMessageAddMember(MemberRequest模型)
{
尝试
{
//添加成员记录
}
捕获(例外情况除外)
{
返回新的HttpResponseMessage{StatusCode=HttpStatusCode.InternalServerError,Content=new StringContent(ex.Message)};
}
}
}

我认为您的错误来自这样一个事实:测试项目是.NET Core 3.1,而您正在测试的项目使用.NET Framework 4.5.1


您是否有理由不希望在测试中使用与正在测试的项目相同的运行时?

问题无疑在于您如何运行测试,您没有说过。例如您正在使用NUnit控制台运行程序、Visual Studio适配器或第三方产品等。特定错误提示运行程序不支持运行.NET核心测试。@Charlie我正在使用Visual Studio 2019社区版本。我进入测试->测试资源管理器,然后单击绿色运行按钮。
public class DirectRewardsController : ApiController
    {
        StandardKernel DependencyKernel;
        
        private IDirectRewards justRewards;
        public DirectRewardsController()
        {
            DependencyKernel = new StandardKernel();
            DependencyKernel.Load(Assembly.GetExecutingAssembly());
            justRewards = DependencyKernel.Get<IDirectRewards>();
        }
        
         public HttpResponseMessage AddMember(MemberRequest model)
        {
            try
            {
                //Add Member record
            }
            catch (Exception ex)
            {
                return new HttpResponseMessage { StatusCode = HttpStatusCode.InternalServerError, Content = new StringContent(ex.Message) };
            }
        }
    }