xUnit v2 IUseFixture<> 替换

xUnit v2 IUseFixture<> replacement

我正在尝试升级到 xUnit 2 beta(主要是因为更好的测试发现)但偶然发现了 IUseFixture<>

public abstract class TestCaseBase : IUseFixture<SelfHostFixture> 
{ /*common stuff here*/ }

public class Controller1Test : TestCaseBase {}

public class Controller2Test : TestCaseBase {}

我发现新的 IClassFixture<> 几乎是我所需要的,除了 fixture 是每个后代 classes (Controller1Test, Controller2Test) 的 created/disposed而不是一次。好吧,我可以将 IClassFixture<SelfHostFixture> 声明从基础移动到每个测试 class,但为什么我要多次 setup/dispose 我的服务器? ICollectionFixture<> 对我没用(灯具的 ctor 从未被解雇)。

基本上我想要的是:

  1. "Per run" fixture(每次测试运行只能实例化一次)
  2. 启用并行运行,因为我的测试只是无状态 HTTP 调用(我认为 ICollectionFixture<> 根本不起作用,因为同一集合中的测试不能并行运行,对吗?)

我错过了什么?

答:使用ICollectionFixture

http://xunit.github.io/docs/shared-context.html