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

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

public class Controller1Test : TestCaseBase {}

public class Controller2Test : TestCaseBase {}

我发现新的IClassFixture<>几乎是我所需要的,除了为每个后代类(Controller1TestController2Test)创建/部署了固定装置,而不是仅仅一次。好吧,我可以将IClassFixture<SelfHostFixture>声明从基础移至每个测试类,但是为什么我要多次设置/处置服务器? ICollectionFixture<>对我不起作用(灯具的ctor从未被解雇)。

基本上,我想要的是:
  • “每次运行”固定装置(每次测试只能实例化一次)
  • 启用并行运行,因为我的测试只是无状态的HTTP调用(我认为ICollectionFixture<>根本无法工作,因为同一集合中的测试无法并行运行,对吗?)

  • 我想念什么?

    最佳答案

    答:使用ICollectionFixture

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

    10-07 19:10
    查看更多