public static void Main(string[] args) { Properties.Settings.Default.Initialize(); NUnitRunner runner = new NUnitRunner(args); if (runner.HasCustomArg("--no-shared-gvfs-cache")) { Console.WriteLine("Running without a shared git object cache"); GVFSTestConfig.NoSharedCache = true; } if (runner.HasCustomArg("--test-gvfs-on-path")) { Console.WriteLine("Running tests against GVFS on path"); GVFSTestConfig.TestGVFSOnPath = true; } if (runner.HasCustomArg("--replace-inbox-projfs")) { Console.WriteLine("Tests will replace inbox ProjFS"); GVFSTestConfig.ReplaceInboxProjFS = true; } GVFSTestConfig.LocalCacheRoot = runner.GetCustomArgWithParam("--shared-gvfs-cache-root"); if (runner.HasCustomArg("--full-suite")) { Console.WriteLine("Running the full suite of tests"); if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) { GVFSTestConfig.FileSystemRunners = FileSystemRunners.FileSystemRunner.AllWindowsRunners; } else if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX)) { GVFSTestConfig.FileSystemRunners = FileSystemRunners.FileSystemRunner.AllMacRunners; } } else { runner.ExcludeCategory(Categories.FullSuiteOnly); GVFSTestConfig.FileSystemRunners = FileSystemRunners.FileSystemRunner.DefaultRunners; } if (runner.HasCustomArg("--windows-only")) { runner.IncludeCategory(Categories.Windows); } if (runner.HasCustomArg("--mac-only")) { runner.IncludeCategory(Categories.Mac.M1); runner.ExcludeCategory(Categories.Mac.M2); runner.ExcludeCategory(Categories.Mac.M3); runner.ExcludeCategory(Categories.Mac.M4); runner.ExcludeCategory(Categories.Windows); } GVFSTestConfig.RepoToClone = runner.GetCustomArgWithParam("--repo-to-clone") ?? Properties.Settings.Default.RepoToClone; RunBeforeAnyTests(); Environment.ExitCode = runner.RunTests(); RunAfterAllTests(); if (Debugger.IsAttached) { Console.WriteLine("Tests completed. Press Enter to exit."); Console.ReadLine(); } }