---
name: "UR::Namespace::Command::Test::Run"
section: "3pm"
platform: "linux"
package: "libur-perl"
version: "0.470+ds-3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/UR::Namespace::Command::Test::Run"
---

# UR::Namespace::Command::Test::Run(3pm)

run one or more test scripts

## NAME

ur test run - run one or more test scripts

## SYNOPSIS

```
 # run everything in a given namespace
 cd my_sandbox/TheNamespace
 ur test run --recurse
 # run only selected tests
 cd my_sandbox/TheNamespace
 ur test run My/Module.t Another/Module.t t/foo.t t/bar.t
 # run only tests which load the TheNamespace::DNA module
 cd my_sandbox/TheNamespace
 ur test run --cover TheNamespace/DNA.pm
 # run only tests which cover the changes you have in Subversion
 cd my_sandbox/TheNamespace
 ur test run --cover-svn-changes
 # run 5 tests in parallel as jobs scheduled via LSF
 cd my_sandbox/TheNamespace
  ur test run --lsf --jobs 5
```

## DESCRIPTION

Runs a test harness around automated test cases, like "make test" in a  make-oriented software distrbution, and similar to "prove" run in bulk.

When run w/o parameters, it looks for "t" directory in the current working  directory, and runs ALL tests under that directory.

## OPTIONS

- \--recurse

  ```
   Run all tests in the current directory, and in sub-directories.  Without
   --recurse, it will first recursively search for directories named 't' under
   the current directory, and then recursively seatch for *.t files under those
   directories.
  ```

- \--long

  ```
   Include "long" tests, which are otherwise skipped in test harness execution
  ```

- \-v

  ```
   Be verbose, meaning that individual cases will appear instead of just a full-script summary
  ```

- \--cover My/Module.pm

  ```
   Looks in a special sqlite database which is updated by the cron which runs tests,
   to find all tests which load My/Module.pm at some point before they exit.  Only
   these tests will be run.
  ```

  \* you will still need the --long flag to run long tests.

  \* if you specify tests on the command-line, only tests in both lists will run

  \* this can be specified multiple times

- \--cover-TOOL-changes

  ```
   TOOL can be svn, svk, or cvs.
   The script will run either "svn status", "svk status", or "cvs -q up" on a parent
   directory with "GSC" in it, and get all of the changes in your perl_modules trunk.
   It will behave as though those modules were listed as individual --cover options.
  ```

- \--lsf

  ```
   Tests should not be run locally, instead they are submitted as jobs to the
   LSF cluster with bsub.
  ```

- \--lsf-params

  ```
   Parameters given to bsub when sceduling jobs.  The default is
   "-q short -R select[type==LINUX64]"
  ```

- \--jobs \<number\>

  ```
   This many tests should be run in parallel.  If --lsf is also specified, then
   these parallel tests will be submitted as LSF jobs.
  ```

## PENDING FEATURES

- automatic remote execution for tests requiring a distinct hardware platform

  - logging profiling and coverage metrics with each test
