626.md 3.6 KB
Newer Older
Lab机器人's avatar
readme  
Lab机器人 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
# Testing standards and style guidelines

> 原文:[https://docs.gitlab.com/ee/development/testing_guide/](https://docs.gitlab.com/ee/development/testing_guide/)

*   [Overview](#overview)
*   [Testing levels](#testing-levels)
*   [Testing best practices](#testing-best-practices)
*   [Frontend testing standards and style guidelines](#frontend-testing-standards-and-style-guidelines)
*   [Flaky tests](#flaky-tests)
*   [GitLab tests in the Continuous Integration (CI) context](#gitlab-tests-in-the-continuous-integration-ci-context)
*   [Review apps](#review-apps)
*   [Testing Rake tasks](#testing-rake-tasks)
*   [End-to-end tests](#end-to-end-tests)
*   [Migrations tests](#migrations-tests)

# Testing standards and style guidelines[](#testing-standards-and-style-guidelines "Permalink")

本文档介绍了自动测试 GitLab 项目的各种指南和最佳实践.

它是对[Thoughtbot 测试风格指南](https://github.com/thoughtbot/guides/tree/master/style/testing)*扩展* . 如果本指南定义的规则与 Thoughtbot 指南相抵触,则以本指南为准. 可能会逐字重复某些准则以强调其重要性.

## Overview[](#overview "Permalink")

GitLab 建立在[Ruby on Rails](https://rubyonrails.org/)之上,并且我们将[RSpec](https://github.com/rspec/rspec-rails#feature-specs)用于所有后端测试,而[Capybara](https://github.com/teamcapybara/capybara)用于端到端集成测试. 在前端,我们将[Jest](https://jestjs.io/)[Karma](http://karma-runner.github.io/) / [Jasmine](https://jasmine.github.io/)用于 JavaScript 单元和集成测试.

以下是两篇很棒的文章,每个人都应该阅读它们,以了解自动化测试的含义以及其原理是什么:

*   [五因素测试](https://madeintandem.com/blog/five-factor-testing/) :为什么我们需要测试?
*   [自动化测试的原则:测试](https://www.lihaoyi.com/post/PrinciplesofAutomatedTesting.html)级别. 确定测试的优先级. 测试费用.

## [Testing levels](testing_levels.html)[](#testing-levels "Permalink")

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

## [Testing best practices](best_practices.html)[](#testing-best-practices "Permalink")

关于编写良好测试的所有知识,包括:测试设计,RSpec,FactoryBot,系统测试,参数化测试等.

## [Frontend testing standards and style guidelines](frontend_testing.html)[](#frontend-testing-standards-and-style-guidelines "Permalink")

您应该知道的有关如何编写良好的前端测试的所有知识:业力,测试承诺,存根等.

## [Flaky tests](flaky_tests.html)[](#flaky-tests "Permalink")

什么是片状测试,我们遇到的不同类型的片状测试,以及我们如何处理它们.

## [GitLab tests in the Continuous Integration (CI) context](ci.html)[](#gitlab-tests-in-the-continuous-integration-ci-context "Permalink")

GitLab 测试套件如何在 CI 上下文中运行:设置,缓存,工件,并行化,监视.

## [Review apps](review_apps.html)[](#review-apps "Permalink")

如何为 GitLab CE / EE 设置评论应用程序以及如何使用它们.

## [Testing Rake tasks](testing_rake_tasks.html)[](#testing-rake-tasks "Permalink")

您应该了解的有关如何测试 Rake 任务的所有知识.

## [End-to-end tests](end_to_end/index.html)[](#end-to-end-tests "Permalink")

您应该了解有关如何使用[GitLab QA](https://gitlab.com/gitlab-org/gitlab-qa)测试框架进行端到端测试的所有知识.

## [Migrations tests](testing_migrations_guide.html)[](#migrations-tests "Permalink")

您应该了解的有关如何测试迁移的一切.

[Return to Development documentation](../README.html)