bigtest

Tests that speed up development, not slow it down

Usage no npm install needed!

<script type="module">
  import bigtest from 'https://cdn.skypack.dev/bigtest';
</script>

README

BigTest

CircleCI Chat on Discord created by Frontside

A Suite of JavaScript libraries and framework extensions to help you answer the question:
Does my application work in real life?


BigTest is an innovative new test runner. It is built to test any web application in any browser and do it with great performance and test stability.

BigTest is under heavy development, we are currently at an alpha stage of development, and adventurous users can start using BigTest today. Want to help us get to Beta? Check out the beta milestone and help us cross the finish line!

Real Applications

The surest way to know if an application is going to work is to actually run it. BigTest is built to work with any web application out of the box and requires zero integration inside your application code. From frontend applications to server side rendered, React, Angular, Vue, Ember and so on… If you can build it, you can test it.

Real Browsers

Does your appication run in a browser? Then if a test is going to measure whether it works or not, it also needs to run in a real browser that a real user might use. BigTest is built from the ground up to work with any browser, including mobile browsers.

Real Stability

Testing big is hard because there can be hundreds if not thousands of things happening concurrently inside your application, including user interactions. We have taken great care to make sure BigTest tests do not suffer from the flakiness issues often associated with big tests. Read about how we eliminate flakiness on our blog.

Getting started

BigTest is currently alpha level software and we are still building documentation, so be prepared for some roughness around the edges, but if you already want to give it a go, here is how you can get going:

Install bigtest in your application:

yarn add -D bigtest

Run the init command to set up your application:

yarn bigtest init

Add a test file in test/my-test.test.js:

import { test, Page, Heading } from 'bigtest';

export default test('My Test')
  .step(Page.visit('/'))
  .step(Heading("My Application").exists());

Start the BigTest server:

yarn bigtest server

And run your tests:

yarn bigtest test

Development

Installation

  1. Clone this repository git clone git@github.com:thefrontside/bigtest.git
  2. Run yarn

Building

To build every package into a publishable state for npm, run the following command at the root of the repo:

yarn prepack

All of the packages which have a compiled output use typescript project references for faster build times and a better project structure.

Any individual package can be built with the prepack script, eg. for @bigtest/server

yarn workspace @bigtest/server prepack

The prepack command will build the server package and any dependant packages that are set in the "references" field of the relevant tsconfig.json.

The following scripts can work on all packages when executed at the root level:

  1. Run yarn prepack:tsc to compile all typescript
  2. Run yarn watch to compile all typescript and instruct tsc to watch for file modifications.
  3. Run yarn clean:tsc to delete all the dist directories and *.tsbuildinfo files and ensure that a clean build is being performed.
  4. Run yarn clean:tsbuild to delete only the *.tsbuildinfo files.

Running tests

  1. Run yarn to ensure that all dependencies are installed
  2. Run yarn prepack to build all packages
  3. Run yarn test to run automated tests

Running lints

  1. Run yarn to ensure that all dependencies are installed
  2. Run yarn prepack to build all packages
  3. Run yarn lint to run linters

License

FOSSA Status