
Research
Namastex.ai npm Packages Hit with TeamPCP-Style CanisterWorm Malware
Malicious Namastex.ai npm packages appear to replicate TeamPCP-style Canister Worm tradecraft, including exfiltration and self-propagation.
@empiricalrun/test-run
Advanced tools
@empiricalrun/test-run is a CLI tool (and library) designed to facilitate running Playwright (or Appwright) tests in a project. It allows you to:
Install from npm (usually as part of an Empirical-run monorepo, but can be done standalone):
npm install -D @empiricalrun/test-run
You can also use the CLI directly with npx.
The CLI entry point is defined in package.json under "bin". The CLI provides three subcommands:
npx @empiricalrun/test-run run [flags] [Playwright/test arguments] # Run tests (default)
npx @empiricalrun/test-run merge [flags] # Merge blob reports
npx @empiricalrun/test-run failed-list <run-id> [flags] # Build test list from failed run
The run command is the default, so you can omit it:
npx @empiricalrun/test-run [flags] [Playwright/test arguments]
npx @empiricalrun/test-run -n "foo" --retries 0
Here, --retries 0 (and any unrecognized options) get passed on to the underlying Playwright command.
run commandBelow are the main CLI options for the run command (implemented in src/bin/commands/run.ts):
| Flag/Option | Description |
|---|---|
-n, --name <test-name> | The scenario name (title) of the specific test to run. If provided, only that particular test/scenario is run instead of all tests. |
-d, --dir <test-dir> | Directory containing tests. Defaults to tests. |
-f, --file <test-file-path> | Specific test file path. If provided along with --name, it targets that file for the named test. |
-p, --project <project-name...> | One or more (space-delimited) project names/patterns used to filter the test run. Examples: --project web or --project ios desktop. |
-s, --suites <suites> | A comma-separated list of suite or describe-block names. Example: --suites "suiteA,suiteB". |
--skip-teardown | Skips teardown tests by marking them as “skipped.” Reverts changes when the process exits. |
--token <token> | A base64-encoded token that, when decoded, can define test configuration (such as a test list). |
--forbid-only | Fails the run if there are any .only blocks in the code. |
Other unrecognized flags on the command line will be appended as Playwright arguments.
merge commandMerges blob reports from sharded test runs:
| Flag/Option | Description |
|---|---|
-b, --blob-dir <path> | Path to the blob-report directory containing sharded reports. |
-c, --cwd <path> | Working directory for the merge operation. |
npx @empiricalrun/test-run merge --blob-dir ./blob-reports --cwd ./output
failed-list commandBuilds a test list from a failed test run for retrying:
| Flag/Option | Description |
|---|---|
<run-id> | (Required) Test run ID to fetch failed tests from. |
-o, --output <path> | Output file path for the test list. |
-r, --repo-name <name> | Repository name for project lookup. |
-p, --repo-path <path> | Path to local repo to expand serial blocks. |
-v, --verbose | Enable verbose logging. |
npx @empiricalrun/test-run failed-list abc123 --output ./failed-tests.json
The following environment variables can further customize behavior:
PROJECT_NAME
Overrides project name detection from package.json.
TEST_RUN_ENVIRONMENT
This helps fetch playwright projects, environment details and potential build artifacts before tests start.
BUILD_URL
Overrides the build URL for downloading any build artifacts.
Group Test:
Use --name to identify one tests with the specfied name, optionally adding --file or --suites if needed.
npx @empiricalrun/test-run --name "my test" --file tests/example.spec.ts
All Tests:
Omit --name. This runs all tests.
npx @empiricalrun/test-run --reporter=list
If you pass --skip-teardown, the CLI will:
*.teardown.ts files so that they are skipped (for example, converting teardown calls to teardown.skip).This is useful for omitting teardown steps during certain runs or local development.
If TEST_RUN_ENVIRONMENT is defined:
dashboard.ts).BUILD_URL is set, it uses the environment’s latest build.download to grab the build.This flow makes sure tests run against the relevant environment or a fresh build artifact.
Run a single named test
npx @empiricalrun/test-run -n "login test"
Use specific test file and name
npx @empiricalrun/test-run -n "logout test" -f tests/logout.spec.ts
Run multiple projects and skip teardown
npx @empiricalrun/test-run -n "mobile login" --project android --project ios --skip-teardown
Run all tests with Playwright arguments
npx @empiricalrun/test-run -- --worker=2 --reporter=line
playwright test (or appwright test) command.--name, --file, etc.@test-run simplifies orchestrating Playwright tests, especially for:
Explore the source (particularly src/bin/commands/ and src/utils) for deeper technical insights and advanced customization.
FAQs
## 1. Introduction
The npm package @empiricalrun/test-run receives a total of 325 weekly downloads. As such, @empiricalrun/test-run popularity was classified as not popular.
We found that @empiricalrun/test-run demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
Malicious Namastex.ai npm packages appear to replicate TeamPCP-style Canister Worm tradecraft, including exfiltration and self-propagation.

Product
Explore exportable charts for vulnerabilities, dependencies, and usage with Reports, Socket’s new extensible reporting framework.

Product
Socket for Jira lets teams turn alerts into Jira tickets with manual creation, automated ticketing rules, and two-way sync.