<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to Running Tests</title><link>https://sourceforge.net/p/lastest/wiki/Running%2520Tests/</link><description>Recent changes to Running Tests</description><atom:link href="https://sourceforge.net/p/lastest/wiki/Running%20Tests/feed" rel="self"/><language>en</language><lastBuildDate>Wed, 06 May 2026 09:06:53 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/lastest/wiki/Running%20Tests/feed" rel="self" type="application/rss+xml"/><item><title>Running Tests modified by Viktor Fási</title><link>https://sourceforge.net/p/lastest/wiki/Running%2520Tests/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v3
+++ v4
@@ -1,6 +1,6 @@
 # Running Tests

-Lastest supports three execution modes for running tests.
+Lastest supports two execution modes. **Local Playwright execution on the host is no longer supported** -- every test runs inside an Embedded Browser pod, even in local development.

 ---

@@ -8,11 +8,10 @@

 | Mode | How | When |
 |------|-----|------|
-| **Local** | Playwright runs on the same machine as Lastest | Development, debugging |
-| **Remote Runner** | Tests dispatched to remote machines via WebSocket | Distributed execution, different OS/browsers |
-| **Embedded Browser** | Browser runs in a container with live streaming back to the UI | Cloud deployments, recording/running without local Playwright |
+| **Embedded Browser** (default) | Browser runs in a containerized pod with CDP live streaming back to the UI. Provisioned dynamically into k3d locally, or into your cluster in production -- one EB per test. | Default for all dev and prod runs |
+| **Remote Runner** | Tests dispatched to remote machines via the `@lastest/runner` npm package over HTTP polling | Distributed execution, different OS/browsers, CI/CD |

-All three modes support both **running** and **recording** tests.
+Both modes support both **running** and **recording** tests. EB pods are short-lived (one job, one EB) -- the provisioner pre-warms a small pool to keep latency low.

 ---

@@ -77,11 +76,30 @@

 ---

+## Headed Playback
+
+Replay any test (or test version) with a visible browser window for debugging. Useful when a failure isn't reproducible in headless or you want to watch selectors resolve in real time. Available from the test detail page; honours the same setup/teardown sequence as a normal run.
+
+---
+
+## Recording Verification
+
+After a recording finishes, Lastest runs a sanity-check pass that resolves every captured selector on the page before saving the test. Bad selectors are surfaced immediately rather than at the next test run, dramatically reducing brittle-on-day-one failures.
+
+---
+
+## Watermarked Share Links
+
+Any build, run, or visual diff can be shared via a public link without requiring login. The shared view embeds a watermark and read-only controls so external reviewers (designers, PMs, customers) can see screenshots and approve/comment without an account on the instance.
+
+---
+
 ## Parallel Execution

 Configure the maximum number of tests that run simultaneously:

 - Set in [Settings Reference](Settings &amp;gt; Playwright)
-- Applies to both local and remote runners
+- Applies to the embedded-browser pool and remote runners
+- The EB pool size and warm-pool keep-alive are tuned via env (`EB_LAUNCH_INTERVAL_MS` etc.)
 - Each remote runner has its own parallel limit

 ---
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Viktor Fási</dc:creator><pubDate>Wed, 06 May 2026 09:06:53 -0000</pubDate><guid>https://sourceforge.netbd2dfe8e07aa7cf5406a6332e197078e72620b1e</guid></item><item><title>Running Tests modified by Viktor Fási</title><link>https://sourceforge.net/p/lastest/wiki/Running%2520Tests/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v2
+++ v3
@@ -18,7 +18,7 @@

 ## Triggering Builds

-Builds can be triggered in three ways:
+Builds can be triggered in multiple ways:

 ### Manual
 Click **Run** in the UI to trigger a build immediately. You can:
@@ -36,6 +36,10 @@
 ### CI/CD

 - **GitHub Action** -- use the reusable action (see [CI CD Integration])
 - **CLI Runner** -- run `pnpm test:visual` in any CI pipeline
+
+### Schedule
+- **Cron-based** -- automate builds on preset schedules (daily, weekly, hourly) or custom cron expressions
+- See [Scheduled Runs] for details

 ---

&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Viktor Fási</dc:creator><pubDate>Wed, 06 May 2026 09:06:52 -0000</pubDate><guid>https://sourceforge.net883a621148da4051a0b73dc1e6d37b2a01218cfb</guid></item><item><title>Running Tests modified by Viktor Fási</title><link>https://sourceforge.net/p/lastest/wiki/Running%2520Tests/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v1
+++ v2
@@ -1,6 +1,6 @@
 # Running Tests

-Lastest2 supports three execution modes for running tests.
+Lastest supports three execution modes for running tests.

 ---

@@ -8,7 +8,7 @@

 | Mode | How | When |
 |------|-----|------|
-| **Local** | Playwright runs on the same machine as Lastest2 | Development, debugging |
+| **Local** | Playwright runs on the same machine as Lastest | Development, debugging |
 | **Remote Runner** | Tests dispatched to remote machines via WebSocket | Distributed execution, different OS/browsers |
 | **Embedded Browser** | Browser runs in a container with live streaming back to the UI | Cloud deployments, recording/running without local Playwright |

@@ -56,7 +56,7 @@
 Run only tests affected by your code changes:


 1. Select a feature branch (not main/master)
-2. Lastest2 compares against the default branch via GitHub/GitLab API
+2. Lastest compares against the default branch via GitHub/GitLab API
 3. Tests are matched to changed files by URL patterns and code references
 4. Only affected tests run, skipping unchanged areas

@@ -94,7 +94,7 @@

 ## Branch Baseline Management

-Lastest2 manages baselines per branch:
+Lastest manages baselines per branch:

 - **Fork**: When a branch is created, baselines are forked from the parent branch
 - **Merge**: When a PR is merged, baselines merge back to the target branch
 - **Promote**: Promote test versions across branches
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Viktor Fási</dc:creator><pubDate>Wed, 06 May 2026 09:06:51 -0000</pubDate><guid>https://sourceforge.net8522b698ff7fa279bec785f86eaeb4a079095025</guid></item><item><title>Running Tests modified by Viktor Fási</title><link>https://sourceforge.net/p/lastest/wiki/Running%2520Tests/</link><description>&lt;div class="markdown_content"&gt;&lt;h1 id="h-running-tests"&gt;Running Tests&lt;/h1&gt;
&lt;p&gt;Lastest2 supports three execution modes for running tests.&lt;/p&gt;
&lt;hr/&gt;
&lt;h2 id="h-execution-modes"&gt;Execution Modes&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Mode&lt;/th&gt;
&lt;th&gt;How&lt;/th&gt;
&lt;th&gt;When&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Local&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Playwright runs on the same machine as Lastest2&lt;/td&gt;
&lt;td&gt;Development, debugging&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Remote Runner&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Tests dispatched to remote machines via WebSocket&lt;/td&gt;
&lt;td&gt;Distributed execution, different OS/browsers&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Embedded Browser&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Browser runs in a container with live streaming back to the UI&lt;/td&gt;
&lt;td&gt;Cloud deployments, recording/running without local Playwright&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;All three modes support both &lt;strong&gt;running&lt;/strong&gt; and &lt;strong&gt;recording&lt;/strong&gt; tests.&lt;/p&gt;
&lt;hr/&gt;
&lt;h2 id="h-triggering-builds"&gt;Triggering Builds&lt;/h2&gt;
&lt;p&gt;Builds can be triggered in three ways:&lt;/p&gt;
&lt;h3 id="h-manual"&gt;Manual&lt;/h3&gt;
&lt;p&gt;Click &lt;strong&gt;Run&lt;/strong&gt; in the UI to trigger a build immediately. You can:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Run all tests in a repository&lt;/li&gt;
&lt;li&gt;Run a specific test suite&lt;/li&gt;
&lt;li&gt;Run individual tests&lt;/li&gt;
&lt;li&gt;Use the Compose page to cherry-pick specific tests and versions&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="h-webhook"&gt;Webhook&lt;/h3&gt;
&lt;p&gt;When a PR is opened or updated:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;GitHub webhooks trigger a build automatically&lt;/li&gt;
&lt;li&gt;GitLab MR webhooks trigger a build automatically&lt;/li&gt;
&lt;li&gt;Results are posted back as PR/MR comments&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="h-cicd"&gt;CI/CD&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;GitHub Action&lt;/strong&gt; -- use the reusable action (see &lt;a class="alink" href="/p/lastest/wiki/CI%20CD%20Integration/"&gt;[CI CD Integration]&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CLI Runner&lt;/strong&gt; -- run &lt;code&gt;pnpm test:visual&lt;/code&gt; in any CI pipeline&lt;/li&gt;
&lt;/ul&gt;
&lt;hr/&gt;
&lt;h2 id="h-build-statuses"&gt;Build Statuses&lt;/h2&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Status&lt;/th&gt;
&lt;th&gt;Meaning&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;passed&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;All tests passed, no visual changes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;safe_to_merge&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Tests passed, only approved/insignificant changes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;review_required&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Visual changes detected that need review&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;blocked&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Unapproved meaningful changes present&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;failed&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;One or more tests failed to execute&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr/&gt;
&lt;h2 id="h-smart-run"&gt;Smart Run&lt;/h2&gt;
&lt;p&gt;Run only tests affected by your code changes:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Select a feature branch (not main/master)&lt;/li&gt;
&lt;li&gt;Lastest2 compares against the default branch via GitHub/GitLab API&lt;/li&gt;
&lt;li&gt;Tests are matched to changed files by URL patterns and code references&lt;/li&gt;
&lt;li&gt;Only affected tests run, skipping unchanged areas&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This dramatically reduces test time for large suites while maintaining coverage.&lt;/p&gt;
&lt;hr/&gt;
&lt;h2 id="h-debug-mode"&gt;Debug Mode&lt;/h2&gt;
&lt;p&gt;Step through test execution with live feedback:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;See each step as it executes&lt;/li&gt;
&lt;li&gt;View screenshots at each step&lt;/li&gt;
&lt;li&gt;Identify exactly where failures occur&lt;/li&gt;
&lt;/ul&gt;
&lt;hr/&gt;
&lt;h2 id="h-parallel-execution"&gt;Parallel Execution&lt;/h2&gt;
&lt;p&gt;Configure the maximum number of tests that run simultaneously:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Set in &lt;a href="./Settings%20&amp;gt;%20Playwright"&gt;Settings Reference&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Applies to both local and remote runners&lt;/li&gt;
&lt;li&gt;Each remote runner has its own parallel limit&lt;/li&gt;
&lt;/ul&gt;
&lt;hr/&gt;
&lt;h2 id="h-test-composition"&gt;Test Composition&lt;/h2&gt;
&lt;p&gt;Cherry-pick tests and pin specific test versions per build:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Go to the &lt;strong&gt;Compose&lt;/strong&gt; page&lt;/li&gt;
&lt;li&gt;Select which tests to include&lt;/li&gt;
&lt;li&gt;Optionally pin specific versions (override the latest version)&lt;/li&gt;
&lt;li&gt;Run the composed build&lt;/li&gt;
&lt;/ol&gt;
&lt;hr/&gt;
&lt;h2 id="h-branch-baseline-management"&gt;Branch Baseline Management&lt;/h2&gt;
&lt;p&gt;Lastest2 manages baselines per branch:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Fork&lt;/strong&gt;: When a branch is created, baselines are forked from the parent branch&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Merge&lt;/strong&gt;: When a PR is merged, baselines merge back to the target branch&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Promote&lt;/strong&gt;: Promote test versions across branches&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;SHA256 carry-forward&lt;/strong&gt;: Matching hashes mean instant pass without pixel comparison&lt;/li&gt;
&lt;/ul&gt;
&lt;hr/&gt;
&lt;h2 id="h-setup-teardown"&gt;Setup &amp;amp; Teardown&lt;/h2&gt;
&lt;h3 id="h-setup-scripts"&gt;Setup Scripts&lt;/h3&gt;
&lt;p&gt;Run preparation steps before tests execute:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Playwright scripts&lt;/strong&gt; -- browser-based setup (login, seed data via UI)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;API scripts&lt;/strong&gt; -- HTTP requests to seed data programmatically&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Test-as-setup&lt;/strong&gt; -- use another test as a setup step&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="h-teardown-scripts"&gt;Teardown Scripts&lt;/h3&gt;
&lt;p&gt;Clean up after tests complete:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Repository-default teardown sequence&lt;/li&gt;
&lt;li&gt;Per-test overrides (skip default steps or add extra ones)&lt;/li&gt;
&lt;li&gt;Teardown errors are non-blocking -- they won't fail your build&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Viktor Fási</dc:creator><pubDate>Wed, 06 May 2026 09:06:50 -0000</pubDate><guid>https://sourceforge.netf44a0c9e4c7748f8fae05bf3faf7f8072fd56840</guid></item></channel></rss>