Unity自动化框架下如何将Dictionary<string,string>转为二维字符串数组
Dictionary<string, string>转二维字符串数组实现方案
核心逻辑
你存储用例结果的字典每个键值对刚好对应HTML表格的一行数据,再加上可选的表头行就能直接拼成符合要求的二维数组。
实现代码
版本1:输出交错数组string[][](大部分C#表格生成工具默认支持的类型)
using System.Collections.Generic; public string[][] ConvertCaseResultTo2DArray(Dictionary<string, string> caseResultDict) { // 数组行数 = 1行表头 + 所有测试用例行数 string[][] resultArray = new string[caseResultDict.Count + 1][]; // 填充表头 resultArray[0] = new string[] { "用例名称", "执行结果" }; int rowIndex = 1; foreach (var kvp in caseResultDict) { resultArray[rowIndex] = new string[] { kvp.Key, kvp.Value }; rowIndex++; } return resultArray; }
版本2:输出矩形二维数组string[,](适配部分要求严格的工具)
using System.Collections.Generic; public string[,] ConvertCaseResultTo2DArray(Dictionary<string, string> caseResultDict) { int rowCount = caseResultDict.Count + 1; const int colCount = 2; string[,] resultArray = new string[rowCount, colCount]; // 填充表头 resultArray[0, 0] = "用例名称"; resultArray[0, 1] = "执行结果"; int rowIndex = 1; foreach (var kvp in caseResultDict) { resultArray[rowIndex, 0] = kvp.Key; resultArray[rowIndex, 1] = kvp.Value; rowIndex++; } return resultArray; }
可选优化
如果需要生成的HTML报告可以直接区分用例执行状态,可以在填充数组时给结果包裹HTML样式标签,示例:
// 替换原填充值的逻辑即可 string resultText = kvp.Value == "pass" ? $"<span style='color:green'>通过</span>" : $"<span style='color:red'>失败</span>"; resultArray[rowIndex][1] = resultText;
注意事项
- 若不需要表头,直接删除表头填充逻辑,将数组行数改为
caseResultDict.Count,遍历起始索引改为0即可 - 代码完全兼容Unity的Mono/.NET运行环境,不需要引入额外第三方依赖
内容的提问来源于stack exchange,提问作者Tzvika
相关产品推荐
相关产品推荐

