Testy.Ts is a modern TypeScript testing framework.
Writing tests should be fun. The other testing framework solutions do not make use of the full power of TypeScript. This one uses decorators and OOP and stuff. Therefore, it makes writing tests fun.
$ npm install --save-dev testyts $ npm install -g testyts
To generate a testy.json configuration file, use the following cmmand:
$ testyts init
Write some tests
Writing tests with Testy is simple. Don't forget to export your test suites though. Otherwise, they won't be discovered by the test runner.
Setup and teardown
Testy provides setup and teardown hooks.
Asynchronous tests, setup and teardown methods are supported out of the box. Just make your method async.
If a test is taking too long to complete, it will fail automatically. The default timeout it 2000 ms, but you can configure it. Please note that the
Timeout decorator goes after the
This is where stuff gets interesting. Testy allows you to use base test classes. The base test can have setup and teardown methods. Your child test suite may also have setup and teardown methods. In that case, the base test methods are executed first.
You can easily run the same test with different inputs using the
TestCase decorator. The first argument is the test case name, the following arguments will be
passed to your test method. Please note this decorator goes after the
There's a whole bunch of assertion methods and also a dash of syntactic sugar sexyness in the expect class.
expect.toBeTrue2 > 1;expect.toBeEqual'a', 'a';expect.not.toBeEqual'p', 'np';expect.toThrowsomeNastyMethod;expect.toBeSorted.inAscendingOrder;// More!
Ignoring or focusing some tests
You can ignore tests by adding an
X before a test suite or a specific test decorator. Ignored tests will still show up in the test report, but they will be marked as ignored.
// This test suite will be ignored
You can also focus tests by adding an
F before a test suite or a specific test decorator. If one test or test suites are focused, only those will be runned. The others will be reported as ignored.
// This test suite will be focused.
Custom tests and test suites names
The tests and test suites names are inferred from the method or class name by default. You can specify a custom name.
Cli arguments will override config file values.
-c --config <config> // Specify a testy.json configuration file -t --tsconfig <tsconfig> // Specify a tsconfig.json file -r --reporter <reporter> // Specify a reporter. Either standard or TAP.
Run the tests
To run the tests, use the following command
$ testyts $ testyts --config custom/config/file.json // To specify a custom configuration file $ testyts --tsconfig custom/tsconfig.json // To specify a custom typescript configuration file (tsconfig.json)
Try it out online!
Here's an online REPL for you to try Testy.Ts!
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Please make sure to update tests as appropriate.
If you have any questions, do not hesitate to email me at email@example.com.