Skip to content

Fix tests#10

Merged
KSemenenko merged 18 commits intomainfrom
fix-tests
Mar 13, 2026
Merged

Fix tests#10
KSemenenko merged 18 commits intomainfrom
fix-tests

Conversation

@KSemenenko
Copy link
Member

No description provided.

Copilot AI review requested due to automatic review settings March 13, 2026 07:45
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the repo’s validation and UI test harness so DotPilot.UITests runs as a mandatory, non-skipped part of the normal dotnet test path, and aligns CI + governance/docs with the new “real pass/fail” workflow.

Changes:

  • Makes UI tests run “for real” by auto-resolving Chrome + a matching cached ChromeDriver, enforcing window sizing, and hardening browserwasm host teardown.
  • Replaces the old CI/MSBuild flow with a dotnet-native validation pipeline (format/build/analyze + unit/coverage/UI tests) and adds cross-OS desktop publish artifacts.
  • Pins toolchain + refreshes test tooling (SDK/test packages) and updates governance/docs/commands to reflect the enforced workflow.

Reviewed changes

Copilot reviewed 22 out of 22 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
ui-tests-mandatory.plan.md Adds a concrete plan + validation notes for making UI tests mandatory and non-skipped.
ci-pr-validation.plan.md Adds a detailed plan + tracker for CI validation fixes and enforcement.
global.json Pins the .NET SDK version used by local and CI builds.
docs/Architecture.md Updates architecture docs to reflect mandatory UI tests + CI desktop artifact publishing.
DotPilot/Services/Endpoints/DebugHandler.cs Refactors handler to avoid release logging field usage while keeping debug-only logging.
DotPilot/GlobalUsings.cs Removes global usings that were causing analyzer/using hygiene issues.
DotPilot/DotPilot.csproj Enables XML doc generation and suppresses CS1591 to keep IDE0005 enforceable in CI.
DotPilot/App.xaml.cs Adjusts DI registration for the debug HTTP handler after global-using removal.
DotPilot/AGENTS.md Documents publish-desktop and the XML-doc/CS1591 exception rationale.
DotPilot.UITests/TestBase.cs Ensures browser teardown runs from finally and forces deterministic window sizing + driver path usage.
DotPilot.UITests/DotPilot.UITests.csproj Enables XML doc generation and suppresses CS1591 in UI test project to satisfy analyzers.
DotPilot.UITests/BrowserTestHost.cs Bounds shutdown and cancels output readers to prevent Windows teardown hangs.
DotPilot.UITests/BrowserAutomationBootstrapTests.cs Stabilizes env-var mutation in tests and updates expectations for normalized driver path.
DotPilot.UITests/BrowserAutomationBootstrap.cs Implements Chrome version detection + ChromeDriver download/cache + environment-variable application.
DotPilot.UITests/AGENTS.md Updates project governance to reflect mandatory, non-skipping UI tests.
DotPilot.Tests/coverlet.runsettings Adds runsettings to exclude generated Uno artifacts and stabilize coverage collection.
DotPilot.Tests/DotPilot.Tests.csproj Enables XML doc generation and suppresses CS1591 in unit test project to satisfy analyzers.
DotPilot.Tests/AGENTS.md Updates coverage command to use the repo-owned runsettings file.
Directory.Packages.props Updates core test/coverage package versions (coverlet, test SDK, NUnit, adapters, logger).
AGENTS.md Updates root governance and required commands (coverage + publish-desktop) and CI expectations.
.github/workflows/ci.yml Rebuilds workflow into a dotnet-native validation pipeline + desktop artifacts matrix.
.github/steps/install_dependencies/action.yml Pins SDK setup to global.json and makes Windows SDK + uno-check opt-in for faster CI.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

You can also share your feedback on Copilot code review. Take the survey.

Comment on lines +119 to +123
private static string EnsureChromeDriverDownloaded(string browserBinaryPath)
{
var browserVersion = ResolveBrowserVersion(browserBinaryPath);
var driverVersion = ResolveChromeDriverVersion(browserVersion);
var driverPlatform = ResolveChromeDriverPlatform();
Comment on lines +175 to +192
private static string ResolveBrowserVersion(string browserBinaryPath)
{
var processStartInfo = new ProcessStartInfo
{
FileName = browserBinaryPath,
Arguments = BrowserVersionArgument,
RedirectStandardOutput = true,
RedirectStandardError = true,
UseShellExecute = false,
CreateNoWindow = true,
};

using var process = Process.Start(processStartInfo)
?? throw new InvalidOperationException(BrowserVersionNotFoundMessage);

var output = $"{process.StandardOutput.ReadToEnd()}{Environment.NewLine}{process.StandardError.ReadToEnd()}";
process.WaitForExit();

@KSemenenko KSemenenko merged commit 4dabc6a into main Mar 13, 2026
4 checks passed
@KSemenenko KSemenenko deleted the fix-tests branch March 13, 2026 10:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants