@simplrjs/test-generator-cli
v0.1.3
Published
Tool to generate tests from cases.
Downloads
34
Readme
Tool to generate tests from cases.
Installation
npm install @simplrjs/test-generator-cli -g
Global installation is not necessary. You can install this package with:
npm install @simplrjs/test-generator-cli --save-dev
and use it with npm-scripts
.
Command line
Usage
test-generator-cli -h
Arguments
| Argument | Type | Default | Description |
|-------------------------------|-----------|---------------------------|-------------------------------------------------------------------------------|
| -h, --help | boolean | false
| Show help. |
| -v, --version | boolean | false
| Show current version. |
| -p, --project | string | ./
| Project directory path. |
Project tests structure
Let's say you picked src
as your project directory.
├── src
└── tests
├── cases
│ ├── __tests__
│ | └── __snapshots__
│ ├── case-1
│ │ ├── ...
│ │ ├── test-config.json
│ │ └── case.test.tpl
│ └── case-2
└── default.test.tpl
| File / Directory | Description |
|---------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------|
| __tests__
| Generated tests output directory. |
| __snapshots__
| Generated tests snapshots directory. |
| case-1
, case-2
| Directories for test cases. |
| case.test.tpl
| Test template file for certain test case. It's not required. If case.test.tpl
not found in case directory, test template will fallback to default.test.tpl
. |
| test-config.json
| Config file for a test case. You can reach it template. Config structure is at your discretion. |
| default.test.tpl
| Default test template file. |
Templates
Package supports two kinds of templates:
case.test.tpl
- test template file for certain test case. It's not required. Ifcase.test.tpl
not found in case directory, test template will fallback todefault.test.tpl
.default.test.tpl
- default test template file.
Template should be a valid TypeScript file that can have Handlebars expressions.
Supported expressions
| Expression | Description |
|-------------------------|-------------------------------------------------------|
| {{caseName}}
| Test case name. |
| {{projectDirectory}}
| Project directory path. |
| {{json testConfig}}
| Test case config file (test-config.json
) content. |
Sample
import * as path from "path";
import { Bundler } from "@src/bundler";
test("{{caseName}}", async done => {
const projectDirectory = "{{projectDirectory}}";
const testConfig = {{{json testConfig}}};
const entryFile = path.join(projectDirectory, testConfig.Entry);
try {
const bundleResult = await new Bundler()
.BundleAll([entryFile]);
expect(bundleResult[0].bundledContent).toMatchSnapshot();
done();
} catch (error) {
done.fail(error);
}
});
License
Released under the MIT license.