void AutoConfigureMac() { var test_suites = new string[] { "apitest", "dontlink-mac" }; var hard_coded_test_suites = new string[] { "mmptest", "msbuild-mac" }; //var library_projects = new string[] { "BundledResources", "EmbeddedResources", "bindings-test", "bindings-framework-test" }; //var fsharp_test_suites = new string[] { "fsharp" }; //var fsharp_library_projects = new string[] { "fsharplibrary" }; //var bcl_suites = new string[] { "mscorlib", "System", "System.Core", "System.Data", "System.Net.Http", "System.Numerics", "System.Runtime.Serialization", "System.Transactions", "System.Web.Services", "System.Xml", "System.Xml.Linq", "Mono.Security", "System.ComponentModel.DataAnnotations", "System.Json", "System.ServiceModel.Web", "Mono.Data.Sqlite" }; foreach (var p in test_suites) { TestProjects.Add(Path.GetFullPath(Path.Combine(RootDirectory, p + "/" + p + ".csproj"))); } TestProjects.Add(Path.GetFullPath(Path.Combine(RootDirectory, "introspection", "Mac", "introspection-mac.csproj"))); foreach (var p in hard_coded_test_suites) { HardCodedTestProjects.Add(Path.GetFullPath(Path.Combine(RootDirectory, p + "/" + p + ".csproj"))); } //foreach (var p in fsharp_test_suites) // TestProjects.Add (Path.GetFullPath (Path.Combine (RootDirectory, p + "/" + p + ".fsproj"))); //foreach (var p in library_projects) //TestProjects.Add (Path.GetFullPath (Path.Combine (RootDirectory, p + "/" + p + ".csproj"))); //foreach (var p in fsharp_library_projects) //TestProjects.Add (Path.GetFullPath (Path.Combine (RootDirectory, p + "/" + p + ".fsproj"))); //foreach (var p in bcl_suites) //TestProjects.Add (Path.GetFullPath (Path.Combine (RootDirectory, "bcl-test/" + p + "/" + p + ".csproj"))); // BclTests.AddRange (bcl_suites); ParseConfigFiles(); var src_root = Path.Combine(Path.GetDirectoryName(Path.GetDirectoryName(RootDirectory))); MONO_PATH = Path.GetFullPath(Path.Combine(src_root, "mono")); }
private void RunOpenCover() { try { if (!TestProjects.Any(t => t.IsSelected)) { LogMessages.Add(LogMessage.Log("No selected projects found", LogMessage.LogType.Warning)); MessageBox.Show("Select the projects you want to run", "No projects selected", MessageBoxButton.OK, MessageBoxImage.Exclamation); return; } if (ProjectType == ProjectType.DotNetCore) { RunDotNetCoreImplementation(); } else { RunDotNetFrameworkImplementation(); } } catch (Exception e) { MessageBox.Show(e.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error); LogMessages.Add(LogMessage.Log(e.Message, LogMessage.LogType.Error)); } }
private void LoadProjects() { try { ProjectType = FindProjectType(); LogMessages.Add(LogMessage.Log("Loading projects", LogMessage.LogType.Info)); TestProjects.Clear(); AssemblyProjects.Clear(); var projects = Common.Instance.Dte2Object.Solution.Projects; foreach (Project project in projects) { if (!project.Name.Contains(".Test")) { if (project.Name.StartsWith("BeagleStreet.")) { LogMessages.Add(LogMessage.Log($"Loaded test project {project.Name}", LogMessage.LogType.Success)); AssemblyProjects.Add(new LoadedProject { IsSelected = true, Name = project.Name }); } continue; } var filePath = ProjectType == ProjectType.DotNetCore ? $"{Path.GetDirectoryName(project.FileName)}\\{project.Name}.csproj" : $"{Path.GetDirectoryName(project.FileName)}\\bin\\debug\\{project.Name}.dll"; if (File.Exists(filePath)) { LogMessages.Add(LogMessage.Log($"Loaded test project {filePath}", LogMessage.LogType.Success)); TestProjects.Add(new LoadedProject { IsSelected = true, Name = project.Name, AssemblyFilePath = filePath }); } else { LogMessages.Add(LogMessage.Log($"Could not find the file {filePath}", LogMessage.LogType.Error)); } } LogMessages.Add(TestProjects.Any() ? LogMessage.Log($"Loaded {TestProjects.Count} test projects", LogMessage.LogType.Success) : LogMessage.Log("Could not test load projects, click reload projects to try again", LogMessage.LogType.Error)); } catch (Exception ex) { TestProjects.Clear(); LogMessages.Add(LogMessage.Log($"Failed to load the projects, click reload to try again. ** {ex.Message} **", LogMessage.LogType.Error)); } }
private void RunDotNetFrameworkImplementation() { var runAllBatchFileLocation = Utilities.GetAssemblyDirectory + "\\runall.bat"; var runTestsBatchFileLocation = Utilities.GetAssemblyDirectory + "\\runtests.bat"; LogMessages.Add(LogMessage.Log($"Generating runtests.bat file to: {runTestsBatchFileLocation}", LogMessage.LogType.Info)); BatchFileHelper.CreateRunTestsBatchFile(TestProjects.Where(a => a.IsSelected), runTestsBatchFileLocation); LogMessages.Add(LogMessage.Log("Generated runtests.bat", LogMessage.LogType.Success)); LogMessages.Add(LogMessage.Log($"Generating runall.bat to: {runAllBatchFileLocation}", LogMessage.LogType.Info)); BatchFileHelper.CreateRunAllBatchFile(AssemblyProjects.Where(a => a.IsSelected), runAllBatchFileLocation); LogMessages.Add(LogMessage.Log("Generated runall.bat", LogMessage.LogType.Success)); BatchFileHelper.RunBatchFile(runAllBatchFileLocation); LogMessages.Add(LogMessage.Log("Successfully ran main batch file", LogMessage.LogType.Success)); }
void AutoConfigure() { var test_suites = new string [] { "monotouch-test", "framework-test", "mini" }; var library_projects = new string [] { "BundledResources", "EmbeddedResources", "bindings-test", "bindings-framework-test" }; var fsharp_test_suites = new string [] { "fsharp" }; var fsharp_library_projects = new string [] { "fsharplibrary" }; var bcl_suites = new string [] { "mscorlib", "System", "System.Core", "System.Data", "System.Net.Http", "System.Numerics", "System.Runtime.Serialization", "System.Transactions", "System.Web.Services", "System.Xml", "System.Xml.Linq", "Mono.Security", "System.ComponentModel.DataAnnotations", "System.Json", "System.ServiceModel.Web", "Mono.Data.Sqlite" }; foreach (var p in test_suites) { TestProjects.Add(Path.GetFullPath(Path.Combine(RootDirectory, p + "/" + p + ".csproj"))); } foreach (var p in fsharp_test_suites) { TestProjects.Add(Path.GetFullPath(Path.Combine(RootDirectory, p + "/" + p + ".fsproj"))); } foreach (var p in library_projects) { TestProjects.Add(Path.GetFullPath(Path.Combine(RootDirectory, p + "/" + p + ".csproj"))); } foreach (var p in fsharp_library_projects) { TestProjects.Add(Path.GetFullPath(Path.Combine(RootDirectory, p + "/" + p + ".fsproj"))); } foreach (var p in bcl_suites) { TestProjects.Add(Path.GetFullPath(Path.Combine(RootDirectory, "bcl-test/" + p + "/" + p + ".csproj"))); } TestProjects.Add(Path.GetFullPath(Path.Combine(RootDirectory, "introspection", "iOS", "introspection-ios.csproj"))); TestProjects.Add(Path.GetFullPath(Path.Combine(RootDirectory, "linker-ios", "dont link", "dont link.csproj"))); TestProjects.Add(Path.GetFullPath(Path.Combine(RootDirectory, "linker-ios", "link all", "link all.csproj"))); TestProjects.Add(Path.GetFullPath(Path.Combine(RootDirectory, "linker-ios", "link sdk", "link sdk.csproj"))); BclTests.AddRange(bcl_suites); WatchOSContainerTemplate = Path.GetFullPath(Path.Combine(RootDirectory, "watchos/Container")); WatchOSAppTemplate = Path.GetFullPath(Path.Combine(RootDirectory, "watchos/App")); WatchOSExtensionTemplate = Path.GetFullPath(Path.Combine(RootDirectory, "watchos/Extension")); ParseConfigFiles(); var src_root = Path.GetDirectoryName(RootDirectory); MONO_PATH = Path.GetFullPath(Path.Combine(src_root, "external", "mono")); WATCH_MONO_PATH = make_config ["WATCH_MONO_PATH"]; TVOS_MONO_PATH = MONO_PATH; INCLUDE_WATCH = make_config.ContainsKey("INCLUDE_WATCH") && !string.IsNullOrEmpty(make_config ["INCLUDE_WATCH"]); }
private string HasDebugFullOn() { var message = string.Empty; foreach (var project in TestProjects.Where(proj => proj.IsSelected)) { var csprojDoc = XDocument.Parse(File.ReadAllText(project.AssemblyFilePath)); var element = csprojDoc.XPathSelectElement("Project/PropertyGroup/DebugType"); if (element != null && !string.Equals(element.Value, "full", StringComparison.CurrentCultureIgnoreCase)) { message += $" - The project '{project.Name}'{Environment.NewLine}"; } } return(message); }
private void RunDotNetCoreImplementation() { var debugFullMessage = HasDebugFullOn(); if (!string.IsNullOrEmpty(debugFullMessage)) { var message = $"Invalid project setup: {Environment.NewLine}{Environment.NewLine}{debugFullMessage}{Environment.NewLine}{Environment.NewLine}" + "Project/PropertyGroup/DebugType in the csproj setup correctly, the value must be 'Full'."; MessageBox.Show(message, "Debug mode not setup", MessageBoxButton.OK, MessageBoxImage.Exclamation); return; } var runAllBatchFileLocation = Utilities.GetAssemblyDirectory + "\\rundotnetcore.bat"; LogMessages.Add(LogMessage.Log($"Generating rundotnetcore.bat file to: {runAllBatchFileLocation}", LogMessage.LogType.Info)); BatchFileHelper.CreateDotNetCoreBatchFile(TestProjects.Where(a => a.IsSelected), runAllBatchFileLocation); LogMessages.Add(LogMessage.Log("Generated rundotnetcore.bat", LogMessage.LogType.Success)); BatchFileHelper.RunBatchFile(runAllBatchFileLocation); LogMessages.Add(LogMessage.Log("Successfully rundotnetcore.bat batch file", LogMessage.LogType.Success)); }
private bool CanRunCodeCover() { return(TestProjects.Any(t => t.IsSelected) && AssemblyProjects.Any(a => a.IsSelected)); }
public Uri[] GetTestProjectUris(Uri workingDirectory) { return(TestProjects .Select(x => new Uri(workingDirectory, x)) .ToArray()); }