【问题标题】:xUnit v2 IUseFixture<> replacementxUnit v2 IUseFixture<> 替换
【发布时间】:2015-01-05 13:26:26
【问题描述】:

我正在尝试升级到 xUnit 2 测试版(主要是因为更好的测试发现)但偶然发现了 IUseFixture&lt;&gt;

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

public class Controller1Test : TestCaseBase {}

public class Controller2Test : TestCaseBase {}

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

基本上,我想要的是:

  1. “每次运行”夹具(每次测试运行必须仅实例化一次)
  2. 启用并行运行,因为我的测试只是无状态 HTTP 调用(我认为 ICollectionFixture&lt;&gt; 根本不起作用,因为同一集合中的测试不能并行运行,对吧?)

我错过了什么?

【问题讨论】:

  • 以防万一您还没有查看,我会查看 github 问题中的类似问题和/或各种 IXXXFixture 和 ctor arg 机制的文档,看看您是否能找到正确的方法管理它
  • 这是我使用的 beta 版本的问题。在 2.0 版本中已修复。

标签: c# .net testing xunit xunit.net


【解决方案1】:

答案:使用ICollectionFixture

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-18
    • 1970-01-01
    • 2016-06-27
    • 2020-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多