You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
test: consolidate the two E2E projects into WopiHost.E2ETests (#548)
The Collabora and ONLYOFFICE e2e projects were near-duplicates: DockerCheck and
PlaywrightFixture were byte-for-byte copies, and the two app fixtures shared the
whole boot-wait-probe-capture skeleton. One project now carries both suites:
- Fixtures/WopiAppFixtureBase absorbs the shared scaffolding (AppHost boot via
the configureBuilder seam, resource waits, client readiness poll against the
Aspire-discovered endpoint, RunProcessAsync/docker diagnostics, repo-root
resolution). Derived fixtures supply only lane specifics: flags, resource
names, readiness semantics (Collabora: /hosting/discovery 200; ONLYOFFICE:
/healthcheck body "true"), timeouts, and client-log capture.
- Suites live under Collabora/ and OnlyOffice/, each tagged with a Client trait
on top of Category=E2E. The nightly workflows run the same project with
--filter "Client=Collabora" / "Client=OnlyOffice" (the runsettings bypass
stays; once cleared, the CLI filter applies alone).
- Both collections keep DisableParallelization=true, so an unfiltered local run
boots the two Aspire stacks sequentially, never concurrently (they pin the
same host ports).
The repo's "duplicate PlaywrightFixture deliberately" precedent (SmokeTests vs
e2e) doesn't apply between the two e2e suites — they have identical dependency
surfaces — so merging removes real duplication without coupling anything new.
Also halves the per-PR compile cost (one Aspire.Hosting.Testing project in
WOPI.slnx instead of two).
Verified: all three tests pass locally through the exact workflow commands
(Client=Collabora: open + save; Client=OnlyOffice: open).
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
# Pre-pulling outside the test makes the test's WaitForResourceHealthyAsync timeout
@@ -61,18 +61,18 @@ jobs:
61
61
- name: Run e2e
62
62
# -p:RunSettingsFilePath= clears the repo-root .runsettings autoloaded via
63
63
# Directory.Build.props. That runsettings filters out Category=E2E so per-PR
64
-
# `dotnet test` skips this suite; we need to undo that filter for the dedicated
65
-
#workflow. We do NOT use --filter "Category=E2E" because dotnet test ANDs the CLI
66
-
#filter with the runsettings filter, yielding (Category!=E2E)&(Category=E2E) which
67
-
# matches zero tests. Bypassing the runsettings entirely is the cleanest opt-in.
68
-
run: dotnet test test/WopiHost.E2ETests.Collabora/WopiHost.E2ETests.Collabora.csproj --no-build -p:RunSettingsFilePath= --verbosity normal --logger "console;verbosity=detailed"
64
+
# `dotnet test` skips this project; the dedicated workflow undoes that and then picks
65
+
#its suite with the Client trait. The Client filter must NOT be combined with the
66
+
#runsettings (dotnet test ANDs CLI and runsettings filters — (Category!=E2E)&(...)
67
+
# matches zero tests); with the runsettings cleared, the CLI filter applies alone.
68
+
run: dotnet test test/WopiHost.E2ETests/WopiHost.E2ETests.csproj --no-build -p:RunSettingsFilePath= --filter "Client=Collabora" --verbosity normal --logger "console;verbosity=detailed"
# Pre-pulling outside the test makes the fixture's healthcheck timeout bound the runtime cost
@@ -61,17 +61,18 @@ jobs:
61
61
- name: Run e2e
62
62
# -p:RunSettingsFilePath= clears the repo-root .runsettings autoloaded via
63
63
# Directory.Build.props. That runsettings filters out Category=E2E so per-PR `dotnet test`
64
-
# skips this suite; we undo that filter for the dedicated workflow. We do NOT use
65
-
# --filter "Category=E2E" because dotnet test ANDs the CLI filter with the runsettings filter,
66
-
# yielding (Category!=E2E)&(Category=E2E) which matches zero tests.
67
-
run: dotnet test test/WopiHost.E2ETests.OnlyOffice/WopiHost.E2ETests.OnlyOffice.csproj --no-build -p:RunSettingsFilePath= --verbosity normal --logger "console;verbosity=detailed"
64
+
# skips this project; the dedicated workflow undoes that and then picks its suite with the
65
+
# Client trait. The Client filter must NOT be combined with the runsettings (dotnet test
66
+
# ANDs CLI and runsettings filters — (Category!=E2E)&(...) matches zero tests); with the
67
+
# runsettings cleared, the CLI filter applies alone.
68
+
run: dotnet test test/WopiHost.E2ETests/WopiHost.E2ETests.csproj --no-build -p:RunSettingsFilePath= --filter "Client=OnlyOffice" --verbosity normal --logger "console;verbosity=detailed"
0 commit comments