c# - 如果条件不满足,不要从 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]
方法时。但我不太了解这个框架,所以我不确定我的选择是什么。
我很确定应该有一个解决方案可以让我将代码放在一个地方并决定整个班级,但我只是不知道它是什么。
解决方案
推荐阅读
- vue.js - 有没有办法在 Vuetify-jsonschema-form Vue js 中更改步进表单的图标?
- xml - 将变量分配给 Python 文件名
- c++ - 没有运算符匹配这些操作数,将学生对象添加到指针数组
- python - 如何修复自相交四面体网格
- python - 如何在 django rest 框架中自动填充只读序列化器字段?
- python-3.x - 训练 tflite 模型是否需要注释图像?
- mysql - MySQL 运行 SQL 脚本错误说“'ascii'编解码器无法解码位置 2386 中的字节 0xe2:序数不在范围内 (128)”
- python-3.x - 通过名称而不是模块访问全局对象
- perl - 为什么在第二次运行脚本时,先显示“Not OK”,然后显示“OK”?
- codeigniter-4 - 在 Codeigniter 4 中有条件的 COUNT