From 63d06ac95cd353e2abfcdd376bbdef56364e0023 Mon Sep 17 00:00:00 2001 From: Dean Ellis Date: Mon, 26 Aug 2024 23:07:08 +0100 Subject: [PATCH] Try to get info on failure --- .github/workflows/main.yml | 9 +++------ Tools/MonoGame.Tools.Tests/BuilderTargetsTest.cs | 13 ++++++++----- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index a0f4a96cfa9..697e24dde1b 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -104,11 +104,8 @@ jobs: run: dotnet run --project build/Build.csproj -- --target=Default if: runner.os == 'Windows' - - name: Build Tests - run: dotnet build Tools/MonoGame.Tools.Tests/MonoGame.Tools.Tests.csproj -c Release - - name: Test - run: ${{github.workspace}}/dotnet64/dotnet test artifacts/Tests/Tools/Release/MonoGame.Tools.Tests.dll --blame-hang-timeout 1m + run: ${{github.workspace}}/dotnet64/dotnet test Tools/MonoGame.Tools.Tests/MonoGame.Tools.Tests.csproj --blame-hang-timeout 1m -c Release env: DOTNET_ROOT: ${{github.workspace}}/dotnet64 MGFXC_WINE_PATH: /home/runner/.winemonogame @@ -116,14 +113,14 @@ jobs: #Not working yet they time out - name: Test - run: ${{github.workspace}}/dotnet64/dotnet test artifacts/Tests/Tools/Release/MonoGame.Tools.Tests.dll --blame-hang-timeout 1m + run: ${{github.workspace}}/dotnet64/dotnet test Tools/MonoGame.Tools.Tests/MonoGame.Tools.Tests.csproj --blame-hang-timeout 1m -c Release env: DOTNET_ROOT: ${{github.workspace}}/dotnet64 MGFXC_WINE_PATH: /Users/runner/.winemonogame if: runner.os == 'macOS' - name: Test - run: dotnet test test artifacts/Tests/Tools/Release/MonoGame.Tools.Tests.dll --blame-hang-timeout 1m + run: dotnet test Tools/MonoGame.Tools.Tests/MonoGame.Tools.Tests.csproj --blame-hang-timeout 1m -c Release if: runner.os == 'Windows' - name: Expose GitHub Runtime diff --git a/Tools/MonoGame.Tools.Tests/BuilderTargetsTest.cs b/Tools/MonoGame.Tools.Tests/BuilderTargetsTest.cs index 0a4ecd864f6..25d8bee89b5 100644 --- a/Tools/MonoGame.Tools.Tests/BuilderTargetsTest.cs +++ b/Tools/MonoGame.Tools.Tests/BuilderTargetsTest.cs @@ -25,21 +25,24 @@ string FindTool (string toolName) TestContext.WriteLine ("returning:" + toolName); return toolName; } - bool RunBuild(string buildTool, string projectFile, params string[] parameters) + bool RunBuild(string buildTool, string projectFile, out string output, params string[] parameters) { var root = Path.GetDirectoryName(typeof(BuilderTargetsTest).Assembly.Location); var psi = new ProcessStartInfo(FindTool(buildTool)) { - Arguments = "build " + projectFile + " -t:IncludeContent " + string.Join(" ", parameters) + " -bl", + Arguments = "build " + projectFile + " -t:IncludeContent " + string.Join(" ", parameters) + " -v:diag -tl:off -bl", WorkingDirectory = root, - UseShellExecute = true, + UseShellExecute = false, + RedirectStandardOutput = true, }; TestContext.WriteLine (psi.FileName + " " + psi.Arguments); using (var process = Process.Start(psi)) { + output = process.StandardOutput.ReadToEnd(); process.WaitForExit(); return process.ExitCode == 0; } + TestContext.WriteLine (output); } [Test] @@ -50,10 +53,10 @@ public void BuildSimpleProject() if (Directory.Exists(outputPath)) Directory.Delete(outputPath, recursive: true); - var result = RunBuild("dotnet", Path.Combine(root, "Assets", "Projects", "BuildSimpleProject.csproj"), new string[] { + var result = RunBuild("dotnet", Path.Combine(root, "Assets", "Projects", "BuildSimpleProject.csproj"), out string output, new string[] { "-p:MGCBCommand=" + Path.Combine(root, "mgcb.dll") }); - Assert.AreEqual(true, result, "Content Build should have succeeded."); + Assert.AreEqual(true, result, $"Content Build should have succeeded.\n{output}"); var contentFont = Path.Combine(outputPath, "DesktopGL", "Content", "ContentFont.xnb"); Assert.IsTrue(File.Exists(contentFont), "'" + contentFont + "' should exist."); }