npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@testplanit/cli

v1.0.2

Published

CLI tool for TestPlanIt - import test results and manage test data

Readme

@testplanit/cli

Command-line interface for TestPlanIt - import test results and manage test data.

Supported Formats

The CLI supports importing test results from 7 different formats:

| Format | Description | File Extensions | |--------|-------------|-----------------| | junit | JUnit XML | .xml | | testng | TestNG XML | .xml | | xunit | xUnit XML | .xml | | nunit | NUnit XML | .xml | | mstest | MSTest TRX | .trx, .xml | | mocha | Mocha JSON | .json | | cucumber | Cucumber JSON | .json |

The CLI can auto-detect the format based on file content, or you can specify it explicitly.

Installation

Standalone Binaries (Recommended)

Download the appropriate binary for your platform from the latest release:

| Platform | Binary | |----------|--------| | Linux (x64) | testplanit-linux-x64 | | macOS (Apple Silicon) | testplanit-macos-arm64 | | macOS (Intel) | testplanit-macos-x64 | | Windows (x64) | testplanit-windows-x64.exe |

Linux / macOS:

# Download (replace URL with actual release URL)
curl -L -o testplanit https://github.com/testplanit/testplanit/releases/latest/download/testplanit-linux-x64
chmod +x testplanit
sudo mv testplanit /usr/local/bin/

Windows (PowerShell):

Invoke-WebRequest -Uri "https://github.com/testplanit/testplanit/releases/latest/download/testplanit-windows-x64.exe" -OutFile "testplanit.exe"

Configuration

Before using the CLI, configure your TestPlanIt instance URL and API token:

# Set URL and token
testplanit config set --url https://your-testplanit-instance.com --token tpi_your_token

# View current configuration
testplanit config show

# Clear stored configuration
testplanit config clear

Environment Variables

You can also use environment variables (they take precedence over stored config):

  • TESTPLANIT_URL - TestPlanIt instance URL
  • TESTPLANIT_TOKEN - API token
TESTPLANIT_URL=https://testplanit.example.com TESTPLANIT_TOKEN=tpi_xxx testplanit import ...

Commands

Import Test Results

Import test results from various formats to create a test run:

testplanit import <files...> --project <id|name> --name <name> [options]

Required:

  • <files...> - Test result files or glob patterns (e.g., ./results/*.xml)
  • -p, --project <value> - Project (ID or exact name)
  • -n, --name <name> - Test run name

Optional:

  • -F, --format <format> - File format: auto, junit, testng, xunit, nunit, mstest, mocha, cucumber (default: auto-detect)
  • -s, --state <value> - Workflow state (ID or exact name)
  • -c, --config <value> - Configuration (ID or exact name)
  • -m, --milestone <value> - Milestone (ID or exact name)
  • -f, --folder <value> - Parent folder for test cases (ID or exact name)
  • -t, --tags <values> - Tags (comma-separated IDs or names; use quotes for names with commas)
  • -r, --test-run <value> - Existing test run to append results (ID or exact name)

Note: For project, state, config, milestone, folder, and test run options, the CLI looks up entities by exact name match. If no match is found, an error is returned. For tags, if a tag name doesn't exist, it will be created automatically.

Examples:

# Import a single JUnit file (auto-detected)
testplanit import results.xml -p 1 -n "Build 123"

# Import with explicit format
testplanit import results.xml -p 1 -n "Build 123" -F junit

# Import TestNG results
testplanit import testng-results.xml -p 1 -n "TestNG Suite" -F testng

# Import Mocha JSON results
testplanit import mocha-report.json -p 1 -n "Mocha Tests" -F mocha

# Import Cucumber JSON results
testplanit import cucumber-report.json -p 1 -n "BDD Tests" -F cucumber

# Import multiple files with glob pattern
testplanit import "./test-results/*.xml" -p 1 -n "CI Build"

# Import with IDs
testplanit import results.xml \
  --project 1 \
  --name "Nightly Build" \
  --format junit \
  --state 5 \
  --config 2 \
  --milestone 3 \
  --folder 10 \
  --tags 1,2,3

# Import with names (exact match required)
testplanit import results.xml \
  --project "My Project" \
  --name "Nightly Build" \
  --state "In Progress" \
  --config "Chrome on Windows" \
  --milestone "Sprint 5" \
  --folder "API Tests" \
  --tags "regression,smoke,critical"

# Mix IDs and names
testplanit import results.xml -p 1 -n "Build 123" \
  --state "Completed" \
  --tags '1,"new tag",smoke'

CI/CD Integration

GitHub Actions (Standalone Binary)

- name: Download TestPlanIt CLI
  run: |
    curl -L -o testplanit https://github.com/testplanit/testplanit/releases/latest/download/testplanit-linux-x64
    chmod +x testplanit

- name: Import Test Results
  env:
    TESTPLANIT_URL: ${{ secrets.TESTPLANIT_URL }}
    TESTPLANIT_TOKEN: ${{ secrets.TESTPLANIT_TOKEN }}
  run: |
    ./testplanit import ./test-results/*.xml \
      --project-id 1 \
      --name "Build ${{ github.run_number }}"

GitLab CI

import-results:
  script:
    - curl -L -o testplanit https://github.com/testplanit/testplanit/releases/latest/download/testplanit-linux-x64
    - chmod +x testplanit
    - ./testplanit import ./test-results/*.xml -p 1 -n "Pipeline $CI_PIPELINE_ID"
  variables:
    TESTPLANIT_URL: $TESTPLANIT_URL
    TESTPLANIT_TOKEN: $TESTPLANIT_TOKEN

Jenkins

withCredentials([
  string(credentialsId: 'testplanit-url', variable: 'TESTPLANIT_URL'),
  string(credentialsId: 'testplanit-token', variable: 'TESTPLANIT_TOKEN')
]) {
  sh '''
    curl -L -o testplanit https://github.com/testplanit/testplanit/releases/latest/download/testplanit-linux-x64
    chmod +x testplanit
    ./testplanit import ./target/surefire-reports/*.xml -p 1 -n "Build ${BUILD_NUMBER}"
  '''
}

Building from Source

Requires Bun to build standalone binaries:

# Install dependencies
bun install

# Build for all platforms
bun run build:binaries

# Or build for specific platform
bun run build:linux
bun run build:macos-arm64
bun run build:macos-x64
bun run build:windows

Binaries will be output to the releases/ directory.

License

Apache-2.0