Skip to content

Latest commit

 

History

History
73 lines (47 loc) · 2.82 KB

File metadata and controls

73 lines (47 loc) · 2.82 KB
stage group info
none
unassigned
To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments

Testing standards and style guidelines

This document describes various guidelines and best practices for automated testing of the GitLab project.

It is meant to be an extension of the thoughtbot testing style guide. If this guide defines a rule that contradicts the thoughtbot guide, this guide takes precedence. Some guidelines may be repeated verbatim to stress their importance.

Overview

GitLab is built on top of Ruby on Rails, and we're using RSpec for all the backend tests, with Capybara for end-to-end integration testing. On the frontend side, we're using Jest and Karma/Jasmine for JavaScript unit and integration testing.

Following are two great articles that everyone should read to understand what automated testing means, and what are its principles:

Learn about the different testing levels, and how to decide at what level your changes should be tested.

Everything you should know about how to write good tests: Test Design, RSpec, FactoryBot, system tests, parameterized tests etc.

Everything you should know about how to write good Frontend tests: Karma, testing promises, stubbing etc.

What are flaky tests, the different kind of flaky tests we encountered, and what we do about them.

How GitLab test suite is run in the CI context: setup, caches, artifacts, parallelization, monitoring.

How review apps are set up for GitLab CE/EE and how to use them.

Everything you should know about how to test Rake tasks.

Everything you should know about how to run end-to-end tests using GitLab QA testing framework.

Everything you should know about how to test migrations.

Return to Development documentation