xUnit - 取消测试时未调用 Collection Fixture 类上的 Dispose 方法

问题描述

我有一个 CollectionFixture,我在 Azure 上创建了一个新资源来运行我的测试,然后我在 dispose 方法删除了该资源,但是当我取消某个测试时,不会调用 dispose 方法,并且不会删除该资源。我该如何处理?

观察:我使用的是 xunit 2.4.1 版和 xunit.runner.visualstudio 2.4.3 版

编辑:根据法比奥的要求添加一些代码

我有一个简单的 FixtureCollection:

[CollectionDeFinition(nameof(EventBusServiceBusCollection))]
public class EventBusServiceBusCollection : ICollectionFixture<EventBusServiceBusFixture> { }

我的 EventBusServiceBusFixture 类就是这样

public class EventBusServiceBusFixture : Idisposable
{
    public EventBusServiceBusFixture()
    {
        //...
        // Create a queue on Azure Service Bus
        CreateQueueAsync().GetAwaiter().GetResult();
    }        

    public void dispose()
    {
        //...
        // Delete the queue from Azure Service Bus
        DeleteQueueAsync().GetAwaiter().GetResult();
    }
}

因此,我在测试开始时创建一个新的 Azure 服务总线队列,并在测试完成时将其删除。它运行良好,问题是当我取消测试时,因为没有调用 dispose 方法

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...