public List <MacTestProject> GetMacBclTargets(MacFlavors flavor)
        {
            Platform platform;

            if (flavor == MacFlavors.Full)
            {
                platform = Platform.MacOSFull;
            }
            else
            {
                platform = Platform.MacOSModern;
            }
            var result = new List <MacTestProject> ();

            foreach (var(name, path, xunit, failure) in projectGenerator.GenerateAllMacTestProjects(platform))
            {
                var prefix = xunit ? "xUnit" : "NUnit";
                result.Add(new MacTestProject(path, targetFrameworkFlavor: flavor, generateVariations: false)
                {
                    Name                   = $"[{prefix}] Mono {name}",
                    Platform               = "AnyCPU",
                    IsExecutableProject    = true,
                    FailureMessage         = failure,
                    RestoreNugetsInProject = true,
                    Dependency             = async() => {
                        var rv = await Harness.BuildBclTests();
                        if (!rv.Succeeded)
                        {
                            throw new Exception($"Failed to build BCL tests, exit code: {rv.ExitCode}. Check the harness log for more details.");
                        }
                    }
                });
            }
            return(result);
        }
        // generate all the different test targets.
        public List <iOSTestProject> GetiOSBclTargets()
        {
            var result = new List <iOSTestProject> ();

            // generate all projects, then create a new iOSTarget per project
            foreach (var(name, path, xunit, platforms) in projectGenerator.GenerateAlliOSTestProjects())
            {
                var prefix = xunit ? "xUnit" : "NUnit";
                result.Add(new iOSTestProject(path)
                {
                    Name = $"[{prefix}] Mono {name}",
                    SkiptvOSVariation    = !platforms.Contains(Platform.TvOS),
                    SkipwatchOSVariation = !platforms.Contains(Platform.WatchOS),
                    Dependency           = async() => {
                        var rv = await Harness.BuildBclTests();
                        if (!rv.Succeeded)
                        {
                            throw new Exception($"Failed to build BCL tests, exit code: {rv.ExitCode}. Check the harness log for more details.");
                        }
                    }
                });
            }
            return(result);
        }