All courses
Tooling · 17 lessons

Building, Running & Reporting Automation

Turn a folder of test scripts into a real, runnable suite — build tools, test runners, parallel execution, retries, and rich reports (Allure, Extent, HTML) that stakeholders actually trust. Java, Python & JavaScript.

Building · 5Running · 6Reporting · 6
0 of 17 lessons complete0%
Lesson 1 of 17Building

From Script to Project: Why Build Tools Matter

A single script isn't a suite

You can run one test file by hand. But a real automation project has many tests, depends on external libraries, needs to run identically on every machine and in CI, and must produce results others can read. Getting there is the job of a build tool and a test runner — the two pieces this course is about.

What a build tool actually does

A build tool manages the lifecycle of your project:

  • Fetches dependencies — downloads Selenium, pytest, Playwright and their transitive dependencies at the exact versions you specify.
  • Compiles the code (for Java) or prepares the environment.
  • Runs the tests through a test runner.
  • Packages and reports — produces artifacts and result files.

Without one, everyone runs a slightly different setup and "works on my machine" becomes a way of life.

The tool per ecosystem

  • Java → Maven or Gradle (with a runner like TestNG/JUnit).
  • Python → pip + venv (with pytest as runner; sometimes Poetry/tox).
  • JavaScript → npm/yarn/pnpm (with a runner like Jest, Mocha or the Playwright test runner).

Build tool vs. test runner — the key distinction

Two different jobs people often blur:

  • The build tool (Maven, npm) sets up the project and invokes the tests.
  • The test runner (TestNG, pytest, Jest) actually discovers, executes and reports individual tests.

You'll usually type a build-tool command (mvn test, npm test) which then hands off to the runner. Understanding both halves is what lets you diagnose "why won't my tests run?".

The payoff: reproducibility

The whole point is that anyone — a teammate, the CI server — can clone the repo, run one command, and get the same dependencies, the same tests and the same results. That reproducibility is the foundation everything else in this course builds on.

Key takeaways

  • A build tool manages dependencies, builds and invokes tests; a test runner discovers and executes them.
  • Each ecosystem has its stack: Maven/Gradle (Java), pip/venv (Python), npm (JavaScript).
  • The goal is reproducibility — one command yields the same result on every machine and in CI.