如何在C# MSTest中强制所有TestMethod添加Owner属性及CI校验
MSTest测试方法统一添加[Owner]属性及CI强制执行方案
我们有50余个基于Visual Studio MSTest框架的项目,目前部分测试方法未添加[Owner]属性,示例代码如下:
[TestMethod] public async Task Sometask() { }
要求所有项目的测试方法统一遵循以下规范:
[TestMethod] [Owner(TestOwners.OwnerName)] public async Task Sometask() { }
关于CI流水线强制执行该规则的方案
- 自定义Roslyn分析器:编写Roslyn分析器,检查所有标记
[TestMethod]的方法是否同时存在[Owner]属性,不存在则触发错误。把分析器打包成NuGet包引入所有项目,在CI流水线中开启代码分析并设为错误级别,一旦检测到违规,流水线直接失败。 - 脚本批量检查:在CI执行测试前,用PowerShell/Shell脚本遍历所有测试项目的代码文件,解析测试方法是否包含
[Owner]属性,发现缺失就返回非零退出码终止流水线。 - .editorconfig配合现有分析器:如果用StyleCop这类已有分析器,可以在
.editorconfig里添加自定义规则,强制要求[TestMethod]必须搭配[Owner]属性。CI中启用代码分析任务,确保规则严格执行。
内容的提问来源于stack exchange,提问作者Jed
相关产品推荐
相关产品推荐

