我正在使用 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]
方法。但是我不太了解该框架,因此不确定在这里有什么选择。
我很确定应该有一个解决方案,该解决方案可以让我将代码放在一个地方并决定整个课程,但是我只是不知道这是什么。