.NET 单元测试之间的共享上下文 类

Shared Context between .NET Unit test Classes

我知道理想的单元测试不应该在它们之间共享任何上下文,但我有一个进退两难的境地:我正在尝试针对一个只有一个可以一次实例化的许可证的软件进行单元测试。

.NET 单元测试似乎 运行 是并行的,所以当我单击 "Run all tests" 时,类 都是同时 运行 并且大多数都失败了,因为它们可以'都有驾照。

所以我看到两个相互排斥的问题:

澄清: 授权软件不是我要测试的,它只是我需要做测试的工具

通常我会认为 Singleton 是一种反模式,因为它使单元测试变得不可能。 但这是一个 Singleton 的好用例。 一个真正的单例,有一个私有构造函数和一个静态构造函数,将 运行 只有一次并且是线程安全的。

这样您就可以运行并行进行测试。

我不确定这是否是您正在寻找的东西,但如果您 运行 同时进行所有测试,但每个测试 运行 在单独的 AppDomain 上,那是否可行?

作为参考,我使用了跨域委托,您可以在其中通过实际测试:https://msdn.microsoft.com/en-us/library/system.appdomain.docallback(v=vs.110).aspx

如果可行,请告诉我!