c# - NUnit 测试错误:无法从程序集“System.Web,版本=4.0.0.0”加载类型“System.Web.HttpApplication”
问题描述
我试图搜索这个,但提供的解决方案似乎对我不起作用。我有一个面向 .Net Framework 4.5.1 的现有 C# 类库项目,该项目目前处于活动状态。我想介绍使用 NUnit 进行单元测试。因此,我在解决方案中添加了 NUnit Test Project(.Net Core 3.1)。我在 NUnit 项目中添加了对 .Net Framework 4.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
NUnit 测试
public class DirectRewardsTests
{
[SetUp]
public void SetUp()
{
}
[Test]
public void Test()
{
//Arrange
DirectRewardsController directRewards = new DirectRewardsController();
//Act
//Assert
Assert.Pass();
}
}
直接奖励控制器
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) };
}
}
}
解决方案
我认为您的错误来自于测试项目是 .NET Core 3.1,而您正在测试的项目使用 .NET Framework 4.5.1。
您是否有理由不想为测试使用与您正在测试的项目相同的运行时?
推荐阅读
- javascript - 在 js 中定义一个 const 数组是什么意思?
- c# - 我可以使用 IAsyncActionFilter/OnActionExecutionAsync 来处理动作结果吗
- linux - 哪个进程/库在 linux(ubuntu) 应用程序中将退格转换为 ansi 转义序列,如“\33[nG”?
- python - python多处理池
- python - 从字典中追加新列表
- python - 通过在日期之间均匀分布将每月值更改为每日
- python - 如何在 SSIS 中运行 .py 脚本而不转换为 .bat 或 .exe
- django - CheckboxInput 始终显示为 ON
- python - PyQT / Pandas - 更新表格小部件数据的最快方法
- git - Git Bash 终端中的“更新被拒绝”是什么意思?