All Projects → developit → Karmatic

developit / Karmatic

🦑 Easy automatic (headless) browser testing with Jest's API, but powered by Karma & Webpack.

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Karmatic

tropic
🍍 Test Runner Library
Stars: ✭ 29 (-97.54%)
Mutual labels:  jest, karma, test-runner
Public
Repository for wallaby.js questions and issues
Stars: ✭ 662 (-43.8%)
Mutual labels:  jest, jasmine, test-runner
Karma
Spectacular Test Runner for JavaScript
Stars: ✭ 11,591 (+883.96%)
Mutual labels:  karma, jasmine, test-runner
Jasmine Matchers
Write Beautiful Specs with Custom Matchers for Jest and Jasmine
Stars: ✭ 552 (-53.14%)
Mutual labels:  jest, karma, jasmine
angular-unit-testing-examples
Showroom for different Angular unit testing concepts
Stars: ✭ 19 (-98.39%)
Mutual labels:  jasmine, jest, karma
vue-popover
Reusable popover component for Vue
Stars: ✭ 22 (-98.13%)
Mutual labels:  jasmine, karma
Rxjs Marbles
An RxJS marble testing library for any test framework
Stars: ✭ 267 (-77.33%)
Mutual labels:  jest, jasmine
Typescript Webpack Starter
⚡ create-ts-lib: A Starter Kit and a CLI to create your TypeScript / ES6 module bundled by Webpack without thinking about build or unit tests configurations. 🏠
Stars: ✭ 358 (-69.61%)
Mutual labels:  karma, jasmine
Burnside
Fast and Reliable E2E Web Testing with only Javascript
Stars: ✭ 389 (-66.98%)
Mutual labels:  karma, test-runner
metadatamanagement
Metadatamanagement (MDM) - Data Search for Higher Education Research and Science Studies
Stars: ✭ 21 (-98.22%)
Mutual labels:  jasmine, karma
Baretest
An extremely fast and simple JavaScript test runner.
Stars: ✭ 364 (-69.1%)
Mutual labels:  jest, test-runner
Spring Boot Angular2
spring boot backend, angular2 frontend with webpack, typescript, sass, bootstrap4, karma, jasmine
Stars: ✭ 396 (-66.38%)
Mutual labels:  karma, jasmine
Egeo
EGEO is the open-source UI library used to build Stratio's UI. It includes UI Components, Utilities, Services and much more to build user interfaces quickly and with ease. The library is distributed in AoT mode.
Stars: ✭ 69 (-94.14%)
Mutual labels:  karma, jasmine
eslint-config-adjunct
A reasonable collection of plugins to use alongside your main esLint configuration
Stars: ✭ 39 (-96.69%)
Mutual labels:  jasmine, jest
Sazerac
Data-driven unit testing for Jasmine, Mocha, and Jest
Stars: ✭ 322 (-72.67%)
Mutual labels:  jest, jasmine
angular-karma test-explorer
vscode extension for easy angular testing and debugging
Stars: ✭ 67 (-94.31%)
Mutual labels:  karma, test-runner
Enzyme
JavaScript Testing utilities for React
Stars: ✭ 19,781 (+1579.2%)
Mutual labels:  jest, test-runner
angular-material-boilerplate
A straightforward and well structured boilerplate based on Google's Angular Material project.
Stars: ✭ 28 (-97.62%)
Mutual labels:  jasmine, karma
Angularconcepts
Key Angular Concepts using Latest Angular version 5
Stars: ✭ 31 (-97.37%)
Mutual labels:  karma, jasmine
Angular Testing Recipes
Simple testing patterns for Angular version 2+
Stars: ✭ 450 (-61.8%)
Mutual labels:  karma, jasmine

Karmatic npm travis

Zero-config browser tests powered by Karma & Puppeteer, with automatic Rollup & Webpack support.

Think of it like Jest for cross-browser testing - it even uses the same expect syntax.

Why do I want this?

Karma, Rollup/Webpack and Jasmine are all great. They're all also quite powerful and each highly configurable. When creating and maintaining small modules, duplication of these configurations and dependencies is cumbersome.

Karmatic is a zero-configuration wrapper around these tools with intelligent defaults, configuration auto-detection, and optimizations most configurations don't include.

Most importantly, Karmatic provides a (headless) browser test harness in a single dependency.

Installation

npm i -D karmatic

... then add a test script to your package.json:

{
    "scripts": {
    	"test": "karmatic"
    }
}

... now you can run your tests using npm t. Here's a minimal example repo.

If you have webpack set up in your project, it will be detected and your webpack.config.js will be used. Otherwise, Rollup is used to bundle tests and any rollup.config.js will be used if present.

Test File Patterns

By default, Karmatic will find tests in any files ending in .test.js or _test.js. You can change this to any minimatch pattern (note the quotes to avoid shell expansion):

karmatic '**/*Spec.jsx?'

Options

--chromeDataDir <filename>

Filename to be used to save Chrome preferences between test runs. Useful for debugging tests. It is recommended to also add this filename to .gitignore.

Example:

karmatic --chromeDataDir .chrome

Usage

Usage
    $ karmatic <command> [options]

Available Commands
    run      Run tests once and exit
    watch    Run tests on any change
    debug    Open a headful Puppeteer instance for debugging your tests

For more info, run any command with the `--help` flag
    $ karmatic run --help
    $ karmatic watch --help

Options
    -v, --version    Displays current version
    --files          Minimatch pattern for test files
    --headless       Run using Chrome Headless  (default true)
    --coverage       Report code coverage of tests  (default true)
    -h, --help       Displays this message

To disable any option that defaults to true, pass false to the option: --headless false or --coverage false.

NOTE: The debug option overrides the default value of the --headless and --coverage option to be false. This option will also open up the local Puppeteer installation of Chrome, not your globally installed one. If you'd like to debug your tests using your your own instance of Chrome (or any other browser), copy the URL from the puppeteer window into your favorite browser.

FAQ

Q: Is there an FAQ?**

Yes.

Projects Using Karmatic

Karmatic is pretty new! Here are some projects that have switched to it you may use as a reference:

License

MIT © developit

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].