private void Button_Confirm_Click(object sender, RoutedEventArgs e) { string origianlName = this.testProject.Name; this.testProject.Name = this.TextBoxTestProjectName.Text; this.testProject.TestTarget = this.TextBoxTestTargetName.Text; this.testProject.TestTargetVersion = this.TextBoxTestTargetVersion.Text; Dictionary <string, object> dict = new Dictionary <string, object>(); foreach (TestRunParameter pair in this.listBoxKeyValuePair.Items) { dict.Add(pair.Name, pair.Value); } TestRunParameters.SaveTestRunParameters(dict, this.runsettingsFile); if (origianlName != this.testProject.Name) { IConfigurationManager configuration = (App.Current as App).Container.GetService <IConfigurationManager>(); this.testProject.Rename(origianlName, configuration.GetConfigValue(Constants.DefaultRunsettingsFile), configuration.GetEncoding()); } this.DialogResult = true; this.Close(); }
public static void SaveToFile(this TestProjectInfo project, string defaultRunsettingsFile, Encoding encoding) { if (!Directory.Exists(project.Location)) { Directory.CreateDirectory(project.Location); } string output = TestProjectInfo.Serialize(project); string srcFile = Path.Combine(project.Location, project.Name + Constants.TestProjectFileTypeExtension); File.WriteAllText(srcFile, output, encoding); string runsettingsFile = Path.Combine(project.Location, project.Name + Constants.TestRunSettingFileTypeExtesion); if (!File.Exists(runsettingsFile)) { File.Copy(defaultRunsettingsFile, runsettingsFile, true); } string xml = File.ReadAllText(runsettingsFile); Dictionary <string, object> dict = VsualStudioTP.XmlRunSettingsUtilities.GetTestRunParameters(xml); IEnumerable <string> testAssemblies = (from r in project.TestMethods select r.Source).Distinct(StringComparer.InvariantCultureIgnoreCase); foreach (string assembly in testAssemblies) { DirectoryInfo root = new DirectoryInfo(Path.GetDirectoryName(assembly)); if (!root.Exists) { continue; } foreach (FileInfo info in root.GetFiles(Constants.TestRunSettingFileTypePattern)) { xml = File.ReadAllText(info.FullName); Dictionary <string, object> tmp = VsualStudioTP.XmlRunSettingsUtilities.GetTestRunParameters(xml); foreach (KeyValuePair <string, object> keyValue in tmp) { if (dict.ContainsKey(keyValue.Key)) { continue; } dict.Add(keyValue.Key, keyValue.Value); } TestRunParameters.AddLegacyNodes(xml, runsettingsFile); } } TestRunParameters.SaveTestRunParameters(dict, runsettingsFile); }