【发布时间】:2018-02-23 17:10:28
【问题描述】:
我们有一组集成测试,它们在数据库中创建数据,并且需要清理数据作为拆卸的一部分。我知道数据对于特定测试始终是唯一的,因此不会影响后续测试。因此,我想在后台线程中处理这些数据的清理工作,以减少对其他测试的影响。
我不情愿地尝试包含System.Web 程序集并使用HostingEnvironment.QueueBackgroundWorkItem 来执行此操作,但怀疑这不起作用:
System.InvalidOperationException: '由于对象的当前状态,操作无效。'
我尝试将我的代码放在异步方法中,而不是等待,但怀疑测试已完成并在完成拆卸之前终止了该过程。
那么实现我的目标的最佳方法是什么?
【问题讨论】:
-
您不能使用
HostingEnvironment.QueueBackgroundItem,因为您没有在 ASP.NET 上下文中运行。 -
有一种方法可以同时运行 nunit 测试,但我不知道它是否也适用于 TearDown:github.com/nunit/docs/wiki/Parallelizable-Attribute
标签: c# asp.net multithreading unit-testing