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 从未被解雇)。
基本上我想要的是:
- "Per run" fixture(每次测试运行只能实例化一次)
- 启用并行运行,因为我的测试只是无状态 HTTP 调用(我认为
ICollectionFixture<>
根本不起作用,因为同一集合中的测试不能并行运行,对吗?)
我错过了什么?
答:使用ICollectionFixture
我正在尝试升级到 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 从未被解雇)。
基本上我想要的是:
- "Per run" fixture(每次测试运行只能实例化一次)
- 启用并行运行,因为我的测试只是无状态 HTTP 调用(我认为
ICollectionFixture<>
根本不起作用,因为同一集合中的测试不能并行运行,对吗?)
我错过了什么?
答:使用ICollectionFixture