在 specflow 中,如果您创建一个名称为“做一些有用的事情”的场景,则生成的单元测试将被命名为“DoSomethingUsefull”(不带空格)。如果场景名称很长,这在 nunit 测试运行程序中不是很易读。
有没有办法用下划线分隔单词?(像一个设置?)
现在唯一的办法就是修改 SpecFlow 的源代码
namespace TechTalk.SpecFlow
{
public static string ToIdentifierPart(this string text)
{
text = firstWordCharRe.Replace(text, match => match.Groups["pre"].Value + match.Groups["fc"].Value.ToUpper());
// --- add this line ---
text = text.Replace(" ", "_");
text = punctCharRe.Replace(text, "_");
text = RemoveAccentChars(text);
if (text.Length > 0)
text = text.Substring(0, 1).ToUpper() + text.Substring(1);
return text;
}
}