Merged into https://github.com/probitas-test/probitas
Command-line interface for Probitas - a scenario-based testing & workflow execution framework.
Requires Deno v2.x or later.
curl -fsSL https://raw.githubusercontent.com/probitas-test/cli/main/install.sh | shEnvironment variables:
| Variable | Description | Default |
|---|---|---|
PROBITAS_VERSION |
Version to install | latest |
PROBITAS_INSTALL_DIR |
Installation directory | ~/.deno/bin |
# Install specific version
curl -fsSL https://raw.githubusercontent.com/probitas-test/cli/main/install.sh | PROBITAS_VERSION=0.1.0 sh
# Install to custom directory
curl -fsSL https://raw.githubusercontent.com/probitas-test/cli/main/install.sh | PROBITAS_INSTALL_DIR=/usr/local sh# Add the tap and install
brew tap probitas-test/tap
brew install probitas
# Or install directly
brew install probitas-test/tap/probitasDeno is installed automatically as a dependency.
With Nix and flakes enabled:
# Run directly without installing
nix run github:probitas-test/cli
# Install to profile
nix profile install github:probitas-test/cliUse in a flake (recommended):
{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
probitas.url = "github:probitas-test/cli";
};
outputs = { nixpkgs, probitas, ... }:
let
system = "x86_64-linux"; # or "aarch64-darwin", etc.
pkgs = import nixpkgs {
inherit system;
overlays = [ probitas.overlays.default ];
};
in {
# Now you can use pkgs.probitas anywhere
devShells.${system}.default = pkgs.mkShell {
packages = [ pkgs.probitas ];
};
};
}NixOS / Home Manager:
{
nixpkgs.overlays = [ probitas.overlays.default ];
environment.systemPackages = [ pkgs.probitas ]; # NixOS
home.packages = [ pkgs.probitas ]; # Home Manager
}# Run all scenarios
probitas run
# Run scenarios with specific tag
probitas run -s tag:example
# Run with JSON reporter
probitas run --reporter json
# List scenarios without running
probitas list
# Format scenario files
probitas fmt
# Lint scenario files
probitas lint
# Type-check scenario files
probitas check
# Show help
probitas --helpExecute scenario files and report results.
Options:
--select, -s <pattern>- Filter scenarios by selector (can repeat)--reporter <type>- Output format: dot, list, json, tap (default: list)--max-concurrency <n>- Max parallel scenarios (0 = unlimited)--sequential, -S- Run scenarios sequentially (alias for --max-concurrency=1)--max-failures <n>- Stop after N failures (0 = continue all)--fail-fast, -f- Stop on first failure (alias for --max-failures=1)--verbose, -v- Verbose output (info level logging)--quiet, -q- Quiet output (errors only, fatal level logging)--debug, -d- Debug output (maximum detail)--include <glob>- Include files matching pattern (can repeat)--exclude <glob>- Exclude files matching pattern (can repeat)--timeout <duration>- Scenario timeout (e.g., "30s", "5m", default: "30s")--no-timeout- Disable timeout (alias for --timeout 0)--config <path>- Path to config file--env <file>- Load environment variables from file (default: .env)--no-env- Skip loading .env file--reload, -r- Reload dependencies before running--no-color- Disable colored output
List discovered scenarios without running them.
Options:
--select, -s <pattern>- Filter scenarios by selector (can repeat)--include <glob>- Include files matching pattern (can repeat)--exclude <glob>- Exclude files matching pattern (can repeat)--json- Output as JSON--config <path>- Path to config file--env <file>- Load environment variables from file (default: .env)--no-env- Skip loading .env file--reload, -r- Reload dependencies before listing--verbose, -v- Verbose output--quiet, -q- Quiet output--debug, -d- Debug output
Initialize a new Probitas project with example files.
Options:
--directory, -d <dir>- Directory name to create (default: "probitas")--force, -f- Overwrite existing files--verbose, -v- Enable verbose output--quiet, -q- Suppress non-error output
Examples:
# Create probitas/ directory with example files
probitas init
# Create custom directory name
probitas init -d scenarios
# Overwrite existing files
probitas init --forceCreated files:
example.probitas.ts- Example scenario fileprobitas.jsonc- Configuration file
Format scenario files using Deno's formatter.
Options:
--include <pattern>- Include pattern for file discovery--exclude <pattern>- Exclude pattern for file discovery--config <path>- Path to probitas config file--verbose, -v- Verbose output--quiet, -q- Suppress output--debug, -d- Debug output
Examples:
# Format all scenario files
probitas fmt
# Format scenarios in specific directory
probitas fmt api/
# Format with custom pattern
probitas fmt --include "e2e/**/*.probitas.ts"Note: Runs deno fmt --no-config on discovered scenario files. Uses
includes/excludes from probitas config (same as run/list).
Lint scenario files using Deno's linter.
Options:
--include <pattern>- Include pattern for file discovery--exclude <pattern>- Exclude pattern for file discovery--config <path>- Path to probitas config file--verbose, -v- Verbose output--quiet, -q- Suppress output--debug, -d- Debug output
Examples:
# Lint all scenario files
probitas lint
# Lint scenarios in specific directory
probitas lint api/
# Lint with custom pattern
probitas lint --include "e2e/**/*.probitas.ts"Note: Runs deno lint --no-config on discovered scenario files. Uses
includes/excludes from probitas config (same as run/list). Automatically
excludes rules: no-import-prefix, no-unversioned-import.
Type-check scenario files using Deno's type checker.
Options:
--include <pattern>- Include pattern for file discovery--exclude <pattern>- Exclude pattern for file discovery--config <path>- Path to probitas config file--verbose, -v- Verbose output--quiet, -q- Suppress output--debug, -d- Debug output
Examples:
# Type-check all scenario files
probitas check
# Check scenarios in specific directory
probitas check api/
# Check with custom pattern
probitas check --include "e2e/**/*.probitas.ts"Note: Runs deno check --no-config on discovered scenario files. Uses
includes/excludes from probitas config (same as run/list).
Selectors filter scenarios by name or tags:
login- Match scenarios with "login" in nametag:api- Match scenarios tagged with "api"!tag:slow- Exclude scenarios tagged with "slow"tag:api,tag:critical- Match both tags (AND)- Multiple
-sflags combine with OR logic
0- Success (all scenarios passed)1- Failure (one or more scenarios failed)2- Usage error (invalid arguments)4- No scenarios found
Create a configuration file in your project root:
Supported config file names (in priority order):
probitas.jsonprobitas.jsonc.probitas.json.probitas.jsonc
The CLI searches for config files in the current directory and parent directories. Configuration values can be overridden by command-line flags.
# Enter development shell with all dependencies
nix develop
# Or run commands directly
nix develop -c deno task testRequires Deno v2.x or later.
# Run tests
deno task test
# Run all checks
deno task verifySee LICENSE file for details.
{ "includes": ["probitas/**/*.probitas.ts"], "excludes": ["**/*.skip.probitas.ts"], "reporter": "list", // Options: dot, list, json, tap "maxConcurrency": 4, "maxFailures": 0, // 0 = continue all "timeout": "30s", "selectors": ["!tag:wip"] }