testify-universal-cli

1.0.5 • Public • Published

Testify Universal CLI

  _______        _   _  __
 |__   __|      | | (_)/ _|
    | | ___  ___| |_ _| |_ _   _
    | |/ _ \/ __| __| |  _| | | |
    | |  __/\__ \ |_| | | | |_| |
    |_|\___||___/\__|_|_|  \__, |
                            __/ |
                           |___/

NPM Version License: MIT

Testify Universal CLI is a language-agnostic interactive command-line tool for running tests across multiple programming languages and frameworks. It automatically detects your project's language, finds test files, extracts test markers/tags, and provides an intuitive interface for filtering and running tests.

Features

  • Multi-language support: Detects and runs tests for Node.js, Python, Ruby, Go, Java, and Rust projects
  • Framework-agnostic: Works with popular testing frameworks like Jest, Vitest, pytest, RSpec, and more
  • Interactive interface: Select and filter tests through an easy-to-use CLI interface
  • Test markers/tags: Filter tests based on markers, tags, or categories
  • React/NextJS support: Full support for React components with JSX/TSX test files
  • Global availability: Available worldwide through NPM with Cloudflare CDN distribution

Installation

# Install globally using npm
npm install -g testify-universal-cli

# Or use with npx
npx testify-universal-cli

Usage

# Run in the current directory
testify

# Filter tests by markers/tags
testify --marker=integration
testify --marker=fast --marker=api

# Force a specific language
testify --language=ruby

# Use a custom test runner
testify --runner=jest

# Run in a different directory
testify --cwd=./my-project

Interactive Interface

Testify provides an intuitive, interactive command-line interface:

 TESTIFY  Test Selection

No active filters. Select markers below to filter tests.

? Select an action:
  Run All Tests
  ── Filter By Marker ──
    api
    auth
    benchmark
❯   error
    fast
    get
    integration
    performance
    post
    slow
  ── Test Files ──
    tests/test_api.py [api, get, post, auth, error]
    tests/test_hello.py
    tests/test_markers.py [fast, slow, api, integration]
    tests/test_performance.py [performance, fast, slow, benchmark]

Use arrow keys to navigate, Enter to select markers or files, and get a smooth testing experience across any programming language.

Supported Languages and Test Frameworks

Language Test Frameworks
Node.js Jest, Vitest, Mocha, React Testing Library
Python pytest
Ruby RSpec, Rake Test
Go go test
Java JUnit with Maven/Gradle
Rust Cargo Test

Deployment Guide

Publishing to NPM

To publish the package to the NPM registry:

# Update version
npm version patch|minor|major

# Set registry to NPM
npm config set registry https://registry.npmjs.org/

# Publish package
npm publish

Deploying to Cloudflare CDN

The package is automatically distributed via Cloudflare CDN when published to NPM. Configuration is stored in .cdn-config.json.

Automated Deployment

The repository includes a deployment script that automates the entire process:

# Run the deployment script
./scripts/deploy.sh

The script will:

  1. Validate your git state and branch
  2. Bump the package version
  3. Deploy to your private registry if configured
  4. Publish to the public NPM registry
  5. Push changes to the repository
  6. Deploy to Cloudflare if wrangler is available

Cross-Platform Compatibility

Testify is designed to work seamlessly across operating systems:

  • Windows: Full support for Command Prompt and PowerShell with Windows-specific path handling, executable detection, and terminal features
  • macOS/Linux: Works natively with Unix-style terminals and paths
  • Local Development: Adapts to different development environments and setups

Special considerations are made for:

  • Path separators and case sensitivity differences
  • Command availability and executable extensions (.exe, .cmd, .bat)
  • Terminal features and capabilities
  • Python environments (handles both 'python' and 'py' commands on Windows)

React and Next.js Support

Testify Universal CLI provides specialized support for React and Next.js projects:

  • Automatic detection of React projects by finding JSX/TSX files
  • Support for Jest with React Testing Library
  • Proper environment configuration for DOM testing
  • Automatic component test discovery for Next.js projects

Example of running tests in a Next.js project:

testify --cwd=./my-nextjs-app

Why Testify?

  • Universal testing experience: No need to learn different test commands for each language
  • Consistent interface: Same CLI experience regardless of the underlying test framework
  • Interactive filtering: Easily select and run specific tests based on markers/tags
  • Low friction: Works out of the box with minimal configuration

Package Sidebar

Install

npm i testify-universal-cli

Weekly Downloads

0

Version

1.0.5

License

MIT

Unpacked Size

86.3 kB

Total Files

14

Last publish

Collaborators

  • raggle_npm