Argus test runner
Watches your files and executes automated tests for them when they change.
Note
These are the docs for 3.0.0 version. For version 2.0 documentation see here. For version 1.4 documentation see here.
Requirements
- Node.js v12 or greater
- npm v6 or greater
Installation
Global installation
npm install -g argus-test-runner
- Navigate to your project root
- Create a configuration file named
argus.config.js
(see configuration examples) - Type
argus
to start watching tests and corresponding production files - Type
argus -h
for usage information
Local installation
-
If you already have a package.json in your project, you can also install argus-test-runner locally
-
Navigate to your project root and type
npm install --save-dev argus-test-runner
-
Create a configuration file named
argus.config.js
(see configuration examples) -
Start Argus with
./node_modules/.bin/argus
-
You can also add an npm script for convenience in your package.json:
"devDependencies":,"scripts":and run
npm run test:watch
To stop watching files just press Ctrl + C
.
Configuration
You must configure argus-test-runner by creating a configuration file. By default, argus
looks for the configuration file named argus.config.js
in the directory in which it is run, but you can specify a different location via -c
console parameter, for example argus -c ../my.custom.argus.config.js
.
Configuration files are written in Javascript.
Configuration file examples
PHPUnit unit tests
moduleexports = environments: // File extension, in this case we are watching PHP files extension: 'php' // Suffix by which test files are identified testNameSuffix: 'Test' // Test directory mirrors your source directory structure testDir: 'tests' sourceDir: 'src' testRunnerCommand: command: 'vendor/bin/phpunit' arguments: ;
PHPUnit unit and integration tests
moduleexports = environments: // Unit test environment extension: 'php' testNameSuffix: 'Test' testDir: 'tests/unit' sourceDir: 'src' testRunnerCommand: command: 'vendor/bin/phpunit' arguments: // Integration environment extension: 'php' testNameSuffix: 'Test' testDir: 'tests/integration' sourceDir: 'src' // If you are using a different configuration file for your integration tests, you can specify it in the // arguments list testRunnerCommand: command: 'vendor/bin/phpunit' arguments: '-c' 'phpunit-integration.xml' ;
PHPUnit unit tests and Javascript unit tests
moduleexports = environments: // PHPUnit test environment extension: 'php' testNameSuffix: 'Test' testDir: 'tests/unit' sourceDir: 'src' testRunnerCommand: command: 'vendor/bin/phpunit' arguments: // Javascript unit test environment extension: 'js' testNameSuffix: '.test' testDir: 'tests/unit' sourceDir: 'src' // If you are using mocha for your Javascript tests testRunnerCommand: command: 'node_modules/.bin/mocha' arguments: // You can define a custom command to run all tests (runs when you press "a" when Argus is running). // Otherwise Argus will use testRunnerCommand and its arguments to run all tests. runAllTestsCommand: command: 'npm' arguments: 't' ;