protected override void OnExecute() { if (!Directory.Exists(_testProjectsBaseDirectory)) { return; } var unitTestProjects = _testProjectsBaseDirectory.GlobFiles(_projectsPattern); var failedTests = new List <(string UnitTestProject, Exception Exception)>(); foreach (var unitTestProject in unitTestProjects) { var projectName = Path.GetFileNameWithoutExtension(unitTestProject); var testResultFile = Path.Combine(_resultsDirectory, $"{projectName}.{_resultFileExt}"); try { var testSettings = CreateTestSettings(unitTestProject, testResultFile); DotNetTasks.DotNetTest(testSettings); } catch (Exception e) { failedTests.Add((UnitTestProject: unitTestProject, Exception: e)); } } if (failedTests.Any()) { throw failedTests.First().Exception; } }
/// <summary> /// xunit test /// </summary> public static ITargetDefinition Test(ITargetDefinition _, IMsBuild build) => _ .DependsOn(build.Build) .DependentFor(build.Pack) .Executes( () => { foreach (var project in build.Solution.GetTestProjects()) { DotNetTasks .DotNetTest( settings => settings .SetProjectFile(project) .SetConfiguration(build.Configuration) .SetGitVersionEnvironment(build.GitVersion) .SetDefaultLoggers(build.LogsDirectory / "test.log") .EnableNoRestore() .SetLogger("trx") .SetProperty("VSTestResultsDirectory", build.TestResultsDirectory) ); } } );