Tool to generate tests from cases.
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
.
test-generator-cli -h
Argument | Type | Default | Description |
---|---|---|---|
-h, --help | boolean | false |
Show help. |
-v, --version | boolean | false |
Show current version. |
-p, --project | string | ./ |
Project directory path. |
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. |
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.
Expression | Description |
---|---|
{{caseName}} |
Test case name. |
{{projectDirectory}} |
Project directory path. |
{{json testConfig}} |
Test case config file (test-config.json ) content. |
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);
}
});
Released under the MIT license.