public static void Run(ScaffoldTestOptions options) { if (!File.Exists(options.SpecFile)) { throw new FileNotFoundException(); } var fileInfo = new FileInfo(options.SpecFile); int dotSeparator = fileInfo.Name.IndexOf('.'); string name = _textInfo.ToTitleCase(fileInfo.Name.Substring(0, dotSeparator)) + "Tests"; var targetClass = GenerateClass(options.Namespace, name, fileInfo.Name); FindTestsInFile(options.SpecFile, (name) => AddTest(targetClass, name, fileInfo.Name)); using CodeDomProvider provider = CodeDomProvider.CreateProvider("CSharp"); CodeGeneratorOptions codegenOptions = new CodeGeneratorOptions() { BracingStyle = "C", }; using StreamWriter sourceWriter = new StreamWriter(options.OutputFile); provider.GenerateCodeFromCompileUnit( targetClass, sourceWriter, codegenOptions); }
public static void Run(ScaffoldTestOptions options) { if (!File.Exists(options.SpecFile)) { throw new FileNotFoundException(); } var fileInfo = new FileInfo(options.SpecFile); int dotSeparator = fileInfo.Name.IndexOf('.'); string name = _textInfo.ToTitleCase(fileInfo.Name.Substring(0, dotSeparator)) + "Tests"; var targetClass = GenerateClass(options.Namespace, name, fileInfo.Name); Regex rx = new Regex(@"it\(\'(.*)\',"); foreach (string line in File.ReadAllLines(options.SpecFile)) { var m = rx.Match(line); if (m?.Success == false) { continue; } // keep in mind, group 0 is the entire match, but // first (and only group), should give us the describe value AddTest(targetClass, m.Groups[1].Value, fileInfo.Name); } using CodeDomProvider provider = CodeDomProvider.CreateProvider("CSharp"); CodeGeneratorOptions codegenOptions = new CodeGeneratorOptions() { BracingStyle = "C", }; using StreamWriter sourceWriter = new StreamWriter(options.OutputFile); provider.GenerateCodeFromCompileUnit( targetClass, sourceWriter, codegenOptions); }