0.2.7 • Published 2 years ago

conifer-test v0.2.7

Weekly downloads
-
License
ISC
Repository
-
Last release
2 years ago

Conifer-branding-logo

shields.io npm version badge shields.io npm license badge shields.io custom website link badge

Overview

Conifer is an open-source framework that allows developers to easily deploy an infrastructure that runs Cypress tests in parallel without a CI. The user can run the full Cypress test suite on a parallelised infrastructure that belongs to them.

Read our case study for more information about test parallelization and to learn how we built Conifer.

The Team

Sam Harreschou Software Engineer Los Angeles, CA

Ahmad Jiha Software Engineer Bay Area, CA

Ainaa Sakinah Software Engineer Tokyo, Japan

Lawrence Tam Software Engineer Bay Area, CA


Table of Contents


Prerequisites

  • Node.js (v12+)
  • NPM
  • AWS Account
  • AWS CLI configured locally
  • Docker (v18.09+)

You'll need to have the above accounts and tools before running any Conifer commands. Being that Conifer is an Node package, both Node.js and NPM must be installed on your local machine. Conifer also requires you to have an AWS account and the AWS CLI configured locally since it relies your local environment to provision AWS resources. Conifer uses Docker images and containers to run parallelized tests on AWS.


Installing Conifer

npm i -g conifer-test

Conifer Commands

CommandDescription
conifer initGathers project information, testing parameters, and provisions necessary tools to build, deploy, and run conifer in your application.
conifer buildBuilds your application with Conifer's Dockerfile and uploads the image to AWS ECR.
conifer deployDeploys the AWS infrastructure needed to run your application's tests in parallel.
conifer runRuns your application's tests in parallel based on the gathered testing parameters.
conifer teardownDestroys most or all of the AWS resources that were deployed.

Initialization

The first command you want to run to setup your project is init.

conifer init

Note: Please ensure you are in your project directory before running conifer init.

  • Conifer prompts you for the number of parallel instances you want provisioned and the type of AWS EC2 instance.
  • Conifer provisions a .conifer folder within your project directory and installs the necessary deployment and dashboard packages to deploy and run Conifer.
  • Creates a configuration file called conifer-config.json that stores prompt information.

Building a Conifer Image

Prerequisites:

  • Application Dockerfile

Conifer assumes your application already has a Dockerfile and will use your Dockerfile in combination with Conifer's Dockerfile.

Note: In order for Conifer to use your Dockerfile, you will need to comment out your FROM instruction.

conifer build

  • Builds the Conifer image based on your Dockerfile and Conifer's Dockerfile to install the necessary dependencies needed to run your application and perform Cypress tests within a Docker container.
  • Can be used to re-build if any changes were made to your application.

Deploying Conifer

conifer deploy

  • Deploys the required AWS infrastructure using AWS CDK based on Conifer's configuration file.
  • Automatically launches the Conifer dashboard so you can see your test results live.

Teardown

conifer teardown

Destroys most or all of the AWS infrastructure depending on prompt responses.

Note: We do not destroy the Image stored on AWS ECR and the DynamoDB Table unless specified.


Conifer Architecture

Conifer Architecture

The above diagram shows the complete infrastructure of Conifer that is provisioned with deploy. For a deeper understanding of this architecture and what each piece is doing, please read our case study.


Helpful Resources

0.2.7

2 years ago

0.2.6

2 years ago

0.2.5

2 years ago

0.2.4

2 years ago

0.2.3

2 years ago

0.2.2

2 years ago

0.2.1

2 years ago

0.2.0

2 years ago

0.1.3

2 years ago

0.1.2

2 years ago

0.1.1

2 years ago

0.1.0

2 years ago

1.0.24

2 years ago

1.0.23

2 years ago

1.0.22

2 years ago

1.0.21

2 years ago

1.0.19

2 years ago

1.0.18

2 years ago

1.0.17

2 years ago

1.0.15

2 years ago

1.0.14

2 years ago

1.0.13

2 years ago

1.0.12

2 years ago

1.0.11

2 years ago

1.0.10

2 years ago

1.0.9

2 years ago

1.0.8

2 years ago

1.0.7

2 years ago

1.0.6

2 years ago

1.0.5

2 years ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago