c# - 使用 NUnit 在不同的应用程序域中运行单元测试

标签 c# unit-testing testing nunit ninject

我似乎遇到了一个问题,我们正在使用的应用程序使用 Ninject 内核,并包含一个特定配置,该配置与 WCF 调用的内容(用户名、 token ...)一起收集。

基于特定配置,用户被分配了对应用程序的权限,这通过 Ninject 内核中的特定实例被屏蔽。

我们不能只重构 Ninject 内核,我们想要做的是运行几个 Nunit 测试,但在单独的应用程序域中运行它们中的每一个(每次都使用不同的设置重新创建内核)。

我只找到了在不同的应用程序域中运行整个测试项目的方法,而不是针对每个测试进行测试。

有办法解决吗?

不幸的是,Ninject 配置不在我们身边,我们必须以这种方式“忍受”它。

最佳答案

我需要做完全相同的事情,所以我创建了一个库,它基本上接受当前测试并在新的 AppDomain 中重新执行它。这是一个名为 NUnit.ApplicationDomain 的 nuget 包并且是 open source .

示例代码:

[Test, RunInApplicationDomain]
public void Method()
{
  Console.WriteLine("I'm in a different AppDomain")
}

关于c# - 使用 NUnit 在不同的应用程序域中运行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9634438/

相关文章:

java - Netbeans 上的 Junit 不起作用

iOS - 在 UITests 目标中使用推送通知

c# - 使用构造函数注入(inject) Autofac 的 InstancePerDependency 的生命周期

c# - 设计翻译 API - 如何处理空格

c# - 如何在 C# 中将 IOrderedEnumerable<char> 转换为字符串?

Python:如何为程序创建积极的测试?

c# - 无法通过 Entity Framework 从 WPF 数据网格更新数据库

c# - 在单元测试中运行时如何访问 Controller 返回的数据?

python - 显式方法参数是个好主意吗? - 惯用的Python

perl - 如何模拟 Perl 模块 Time::HiRes