skillfed

cwltest

Common Workflow Language testing framework

cwltest v2.7.20260814150058 120.3K downloads/30d#12,033 on PyPI20
Permissive license Apache 2.0 Active released

What it is and what it does

cwltest is a testing framework for validating Common Workflow Language (CWL) tools and workflows. It reads test case definitions from YAML files, executes them against a CWL runner, and compares the actual outputs to expected results. The package is used to run the official CWL conformance test suite and can generate JSON badge data for displaying test results.

The tool integrates with pytest and supports custom file access modules, allowing you to test CWL implementations that write outputs to remote storage systems rather than local filesystems. It runs on the command line and can be extended by implementing alternate storage backends through Python entry points.

Use it for:

  • Run CWL conformance tests to verify a workflow engine's compliance with the CWL specification.
  • Validate custom CWL tools and workflows before deploying them to production pipelines.
  • Generate conformance badges showing test pass rates for documentation or CI/CD dashboards.
  • Test CWL implementations that use non-local storage (cloud buckets, remote filesystems) via custom fsaccess modules.
  • Integrate CWL validation into continuous integration pipelines to catch workflow regressions.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

cwltest validates the output of Common Workflow Language tools and workflows by running test cases defined in YAML and comparing results against expected outputs.

Yes. cwltest is actively maintained, has no known vulnerabilities, installs with minimal friction, and is the standard testing tool for CWL workflows. Install it if you develop, validate, or run Common Workflow Language tools or need to verify CWL engine compliance.

Install

cwltest on PyPI

pip

pip install cwltest

uv

uv add cwltest

poetry

poetry add cwltest

Installing cwltest

Before you install

Low friction install with only two runtime dependencies (schema-salad and junit-xml). Actively maintained with a release on 2026-08-14 and support for current Python versions (3.10 through 3.15).

License in practice

Licensed under Apache 2.0 (permissive), allowing free use, modification, and distribution with minimal restrictions—suitable for both open-source and commercial projects.

Quickstart

pip install cwltest

from cwltest import main
# Or use the command-line interface:
# cwltest --test test-descriptions.yml --tool cwl-runner

Requires Python 3.10 or later (up to 3.15); CWL tools and a test description YAML file are needed to run actual tests.

Verify before relying

  • Whether the package includes built-in test suites or examples beyond the conformance tests mentioned.
  • Performance characteristics when running large numbers of test cases or complex workflows.
  • Compatibility with specific CWL implementations beyond the generic cwl-runner reference.

Package facts

License Apache 2.0 (permissive)
Python support supports the current Python release (<3.16,>=3.10)
Install friction low — pure-Python wheel
Runtime dependencies 2 — schema-salad, junit-xml
Maintenance actively maintained — 0 days since the last release
Last repo commit
First released
Downloads 120,325/month — #12,033 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: cwltest-2.7.20260814150058-py3-none-any.whl

Development Status :: 5 - Production/StableEnvironment :: ConsoleFramework :: PytestLicense :: OSI Approved :: Apache Software LicenseOperating System :: MacOS :: MacOS XOperating System :: POSIXProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: 3.15Typing :: Typed

Tags

cwl workflow testingcommon workflow language validatorcwl conformance testingworkflow output verificationcwl test runnerbioinformatics workflow testingcwl tool validation
workflow-testingcwlbioinformatics

More Testing packages