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 🙏

© 2025 – Pkg Stats / Ryan Hefner

@testiny/cli

v1.30.0

Published

A command-line client for Testiny

Downloads

16,865

Readme

Testiny CLI

Use the Testiny CLI to import test cases and test runs into your Testiny Organization.

  • Test cases can be imported from CSV files (see example below)
  • Test runs can be imported from CSV, JUnit and Playwright JSON files & many more formats

Quickstart

  • Create an API key with write permissions on the project you want to import to
  • Set the API key as the TESTINY_API_KEY environment variable or pass with --apikey
  • Running just testiny-importer testcase, testiny-importer testrun or testiny-importer automation command prompts for required options

General options

Usage: testiny-importer [options] [command]

Options:
  --app <url>                    App endpoint to use
  -P, --project <nameOrKey>      Target project id or key
  -y, --confirm                  Do not prompt for confirmation before starting import
  -q, --quiet                    Do not prompt for optional settings
  --disable-custom-fields        Disable custom field import. Will fail if required custom fields
                                 with no defaults are enabled
  --enable-custom-fields         Enable custom field import. Will fail if required custom fields
                                 with no defaults are enabled
  --disable-tc-keys              Disable test case import key hints (If enabled use #1234 or
                                 TC-1234 in title for referencing test cases)
  --disable-nested-folders       Disable nesting of imported folders (flat mode), applies to CSV
                                 files only
  --enable-nested-folders        Enable nesting of imported folders (flat mode), applies to CSV
                                 files only
  --folder-separator <token>     Token for folder name separation (default empty = automatic)
  --markdown                     Enable Markdown conversion
  --skip-invalid                 Skip invalid test cases (default: false)
  --duplicates <duplicate mode>  Controls how duplicates are detected (choices: "off", "title",
                                 "folder_title", default: "folder_title")
  --apikey <apiKey>              The API key to use. Not recommended - use the environment variable
                                 TESTINY_API_KEY or TESTINY_IMPORT_API_KEY instead
  -h, --help                     display help for command

Commands:
  testcase [options]             Import test cases (with folders)
  testrun [options]              Import test case results as a testrun
  automation [options]           Import automated test run results, including test cases and
                                 environment data
  licenses                       Show included package licenses
  help [command]                 display help for command

Importing manual test cases

Usage: testiny-importer testcase [options]

Import manual test cases (with folders)

Options:
  --csv <file>                     Import this CSV file
  --csv-encoding <encoding>        CSV file encoding (default: "utf8")
  --trl <file>                     Import TestRail XML export
  --trl-api <server url>           Import from TestRail API
  --trl-user <user name>           Username/email for TestRail API
  --trl-export-users <file>        Export TestRail users to CSV file
  --trl-tc-limit <count>           Limits the number of test cases fetched
  --trl-rate-limit <rps>           Limits the number of requests to the TestRail api (default 160, zero for no limit)
  --steps <step mode>              Controls how steps are imported (choices: "auto", "off", "rows", "row_blocks", "newlines",
                                   "numbered", "numbered_bracket", "asterisk")
  --attachments <attachment mode>  Controls how test case attachments are imported (choices: "off", "inline", "all")
  --work-items                     Import work items (e.g. Jira issues) when importing from TestRail API
  --integration <name or id>       Name or Id of the integration to use for workitem import
  -h, --help                       display help for command

Importing manual test runs

Usage: testiny-importer testrun [options]

Import manual test case results as a testrun

Options:
  --csv <file>                             Import this CSV file
  --csv-encoding <encoding>                CSV file encoding (default: "utf8")
  --junit <file>                           Import this JUnit XML file
  --playwright <file>                      Import this Playwright JSON file
  --name <test run name>                   Name of the test run (use %date, %host and %source as placeholders)
  --update                                 Allow run with given name to be updated, otherwise creates a new run with that name (default: false)
  --close                                  Close the testrun after a successful import (default: false)
  --folder <folder name>                   Override folder name for all created test cases
  --testplan <nameOrKey>                   Target test plan id or title
  --junit-ignore-classname                 JUnit: do not include 'classname' attribute in test case title (default: false)
  --junit-classname-as-folder              JUnit: The 'classname' attribute is used for folder names and not the test case title (default: false)
  --junit-strip-classname-prefix <prefix>  JUnit: Remove the specified prefix string from classnames before processing
  --testcases <tc mode>                    Controls how test cases are created if no existing TC is found (choices: "ignore", "fail", "create", default: "create")
  -h, --help                               display help for command

Importing automated test runs/results

Usage: testiny-importer automation [options]

Import automated test run results, including test cases and environment data

Options/Subcommands:
  --show-env [env]                             Show the field values for the specified (or autodetected) environment
  --list-envs                                  List names of available environments and exit
  --complete-runs                              Mark open runs matching the current environment's run field values (e.g. pipeline id) as 'complete'
  --codeceptjs                                 Import CodeceptJS Mochawesome JSON report file
  --cypress                                    Import Cypress Mochawesome JSON report file
  --junit                                      Import JUnit-compatible file
  --mochawesome                                Import Mochawesome JSON report file
  --nunit                                      Import NUnit-compatible file
  --playwright                                 Import Playwright JSON report file
  --rxlog                                      Ranorex compressed report file
  --testng                                     Import TestNG report XML file
  --vitest                                     Import Vitest json report file
  --vstest                                     Import VSTest trx test results XML file
  --xunit                                      Import XUnit-compatible file
  --no-attachments                             Disables importing of attachments
  --attachment-path <path>                     Base directory for relative attachment file paths, defaults to input file directory
  --source <source>                            The name of the Testiny automation source for import (will be created if it does not exist)
  --run-fields <runFields>                     A comma-separated list of field names to use for uniquely identifying test runs. Defaults to automatic detection from the CI environment
  --run-title-pattern <pattern>                A pattern for creating test run titles out of field values, use %{field_name} as placeholders
  --environment <envName>                      The name of the CI environment, overrides automatic detection (default: "auto")
  --field-values <fieldValues>                 A list of fixed field values to add to every result: field1=value1,field2=value2
  --incomplete                                 Does not mark test runs as complete - set this flag if more results will be added later (e.g. another job)
  --ignore-errors                              Ignore errors and only log warnings instead
  --milestone-id <id>                          Link newly created automation runs to the milestone with the specified id
  --config <opts.json>                         Read options from JSON file (command line arguments override these)
  --junit-ignore-classname                     JUnit: do not include 'classname' attribute in test case title (default: false)
  --junit-classname-as-folder <single|nested>  JUnit: The 'classname' attribute is used for one 'single' folder name or 'nested' folder names (and not the test case title)
  --junit-strip-classname-prefix <prefix>      JUnit: Remove the specified prefix string from classnames before processing
  --junit-duration-unit <format>               JUnit: specify the unit of time durations, defaults to auto-detect (choices: "sec", "ms")
  -h, --help                                   display help for command

Example files

CSV Example for importing test cases

folder,title,precondition,steps,expected_result
"Folder Name", "Test case title", "Precondition text, can be empty", "Steps text (depends on step mode setting)", "Expected result, can be empty"
"Folder Name > Subfolder Name", "Another test case title", "", "Folders can be nested by using the folder separator token", ""

Bundled licenses

For licenses of bundled dependencies, please see LICENSE.txt in the package directory