首页 > 解决方案 > 如果条件不满足,不要从 TestClass 运行测试

问题描述

我正在使用程序集 Microsoft.VisualStudio.TestPlatform.TestFramework, Version=14.0.0.0

我有一个[TestClass]只包括与发布和订阅消息有关的测试。但是,我们使用的消息代理客户端可能在当前环境中不可用或由于某些其他原因,即在 appsettings 中带有 falg 的控制器:

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

这是我知道消息代理是否可用并且我可以执行测试的方式。现在,一个简单的解决方案,立即浮现在脑海中,就是有一些(可能是私有方法),它会在每个测试开始时被调用,例如:

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

但是我应该把它放在离 DRY 很远的每个测试的开头。

在一个完美的场景中,我将能够启用/禁用该[TestClass]属性或具有任何其他属性或阻止所有测试执行的东西。在最坏的情况下,也许当我调用该 [ClassInitialize]方法时。但我不太了解这个框架,所以我不确定我的选择是什么。

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

标签: c#mstest

解决方案


推荐阅读