如果不满足条件,请不要从TestClass运行测试

时间:2020-08-10 20:40:50

标签: c# mstest

我正在使用 Assembly Microsoft.VisualStudio.TestPlatform.TestFramework,版本= 14.0.0.0

我有一个[TestClass],其中仅包含与发布和订阅消息有关的测试。但是,我们使用的消息代理客户端可能无法在当前环境中使用,或者由于某些其他原因而无法使用,这是控制器在appsettings中出现错误的原因:

var messageBrokerConfig = configuration.GetSection("MessageBroker").Get<BrokerConfig>();
if (messageBrokerConfig.Enabled)...

这是我知道消息代理是否可用并且可以执行测试的方式。现在,一个立即想到的简单解决方案就是在每次测试开始时调用一些(也许是私有方法),例如:

    private bool ShouldExecute()
    {
        return configuration.GetSection("MessageBroker").GetSection("Enabled") == false.ToString()
    }

但是我应该把它放在每个测试的开始,这与DRY相距很远。

在一个完美的场景中,我将能够/禁用[TestClass]属性,或者具有任何其他属性或某些东西来阻止所有测试的执行。最糟糕的是,也许当我调用 [ClassInitialize]方法。但是我不太了解该框架,因此不确定在这里有什么选择。

我很确定应该有一个解决方案,该解决方案可以让我将代码放在一个地方并决定整个课程,但是我只是不知道这是什么。

0 个答案:

没有答案