Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/).

---

### v3.3.0 — 2026-08-15

- **`execution.parallel` now validates against TestNG's own parallel modes, not a hand-written allowlist that had drifted from them** — `tests` and `instances` are legitimate TestNG modes that flow straight through to `XmlSuite.setParallel()` and work exactly like `methods`/`classes` downstream, but Selenium Boot's bootstrap validator rejected them anyway, and did so with a "Parallel execution configuration missing" message — telling users their config was absent when it was present but simply not on the list. Validation now delegates to TestNG's `XmlSuite.ParallelMode` enum directly, so anything TestNG accepts, Selenium Boot accepts, and an unrecognised value's error message names both the rejected value and the full valid set instead of going stale again. (Fixes #35)

### v3.2.0 — 2026-07-18

- **Three new `WaitEngine` conditions**, consistent with the existing `waitFor*` naming:
Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ Three files. Copy them as-is and `mvn test` goes green against a real Chrome.
<dependency>
<groupId>io.github.seleniumboot</groupId>
<artifactId>selenium-boot</artifactId>
<version>3.2.0</version>
<version>3.3.0</version>
</dependency>
</dependencies>

Expand Down Expand Up @@ -168,7 +168,7 @@ Add to your `pom.xml`:
<dependency>
<groupId>io.github.seleniumboot</groupId>
<artifactId>selenium-boot</artifactId>
<version>3.2.0</version>
<version>3.3.0</version>
</dependency>
```

Expand Down Expand Up @@ -749,7 +749,7 @@ ci:

## Project Status

**Current release: v3.2.0** — three new `WaitEngine` conditions: `waitForAttribute` (exact-match attribute), `waitForUrlMatches`, and `waitForTextMatches` (regex).
**Current release: v3.3.0** — `execution.parallel` is now validated against TestNG's own parallel modes, so `tests` and `instances` are accepted alongside `none`, `methods`, and `classes`.

See the full version history in **[CHANGELOG.md](CHANGELOG.md)**.

Expand Down
7 changes: 7 additions & 0 deletions docs-site/docs/changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,13 @@ All notable changes to Selenium Boot are documented here.

---

## [3.3.0] — 2026-08-15

### Fixed
- **`execution.parallel` validation now matches TestNG's own parallel modes** — `tests` and `instances` are legitimate TestNG modes that flow straight through to `XmlSuite.setParallel()` and behave exactly like `methods`/`classes` downstream, but Selenium Boot's bootstrap validator rejected both, reporting a misleading "Parallel execution configuration missing" for a value that was present but not on a hand-written allowlist. Validation now delegates to TestNG's `XmlSuite.ParallelMode` enum directly, so `none`, `methods`, `classes`, `tests`, and `instances` are all accepted, and an unrecognised value's error message names both the rejected value and the full valid set. (Fixes #35)

---

## [3.2.0] — 2026-07-18

### Added
Expand Down
4 changes: 0 additions & 4 deletions docs-site/docs/configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -191,10 +191,6 @@ Maps directly to TestNG parallel execution mode. Thread count is set via `thread
| `tests` | Each `<test>` in the suite XML runs in its own thread |
| `instances` | Each test class instance runs in its own thread |

:::note Version
`tests` and `instances` are accepted from the next release onwards. **v3.2.0, the current release on Maven Central, accepts only `none`, `methods` and `classes`.**
:::

### `maxActiveSessions`
Maximum concurrent browser instances. Tests wait (up to 30s) for a slot rather than failing immediately. Prevents resource exhaustion in parallel runs.

Expand Down
6 changes: 3 additions & 3 deletions docs-site/docs/getting-started.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ No WebDriver binaries required — Selenium Manager handles browser driver downl
<dependency>
<groupId>io.github.seleniumboot</groupId>
<artifactId>selenium-boot</artifactId>
<version>3.2.0</version>
<version>3.3.0</version>
</dependency>
```

Expand All @@ -44,7 +44,7 @@ No WebDriver binaries required — Selenium Manager handles browser driver downl

```groovy title="build.gradle"
dependencies {
testImplementation 'io.github.seleniumboot:selenium-boot:3.2.0'
testImplementation 'io.github.seleniumboot:selenium-boot:3.3.0'
}

test {
Expand All @@ -58,7 +58,7 @@ test {

```kotlin title="build.gradle.kts"
dependencies {
testImplementation("io.github.seleniumboot:selenium-boot:3.2.0")
testImplementation("io.github.seleniumboot:selenium-boot:3.3.0")
}

tasks.test {
Expand Down
4 changes: 0 additions & 4 deletions docs-site/docs/guides/parallel.md
Original file line number Diff line number Diff line change
Expand Up @@ -95,10 +95,6 @@ You do not need to do anything special in your tests. `getDriver()` always retur
| `tests` | Each `<test>` in the suite XML runs in a thread | Use to isolate suite-level groupings |
| `instances` | Each test class instance runs in a thread | Rarely needed — factory-driven suites |

:::note Version
`tests` and `instances` are accepted from the next release onwards. **v3.2.0, the current release on Maven Central, accepts only `none`, `methods` and `classes`** and rejects the other two at bootstrap.
:::

---

## Parallel + per-suite lifecycle
Expand Down
2 changes: 1 addition & 1 deletion docs-site/docs/junit5.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ Selenium Boot supports both **TestNG** (built-in) and **JUnit 5** (opt-in). The
<dependency>
<groupId>io.github.seleniumboot</groupId>
<artifactId>selenium-boot</artifactId>
<version>3.2.0</version>
<version>3.3.0</version>
</dependency>

<dependency>
Expand Down
2 changes: 1 addition & 1 deletion docs-site/docs/migration/from-selenium-testng.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ Remove your Selenium, WebDriverManager, and reporting dependencies and add one:
<dependency>
<groupId>io.github.seleniumboot</groupId>
<artifactId>selenium-boot</artifactId>
<version>3.2.0</version>
<version>3.3.0</version>
</dependency>
```

Expand Down
2 changes: 1 addition & 1 deletion docs-site/src/pages/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -241,7 +241,7 @@ export default function Home() {
code={`<dependency>
<groupId>io.github.seleniumboot</groupId>
<artifactId>selenium-boot</artifactId>
<version>3.2.0</version>
<version>3.3.0</version>
</dependency>`}
/>
</div>
Expand Down
4 changes: 2 additions & 2 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,12 @@

<groupId>io.github.seleniumboot</groupId>
<artifactId>selenium-boot</artifactId>
<version>3.2.0</version>
<version>3.3.0</version>
<packaging>jar</packaging>

<name>Selenium Boot</name>
<description>Opinionated Selenium framework inspired by Spring Boot</description>
<url>https://github.com/seleniumboot/selenium-boot</url>
<url>https://seleniumboot.com</url>

<licenses>
<license>
Expand Down
Loading