diff options
author | Winnie Hellmann <winnie@gitlab.com> | 2019-01-15 16:59:50 +0300 |
---|---|---|
committer | Winnie Hellmann <winnie@gitlab.com> | 2019-01-15 17:53:43 +0300 |
commit | 510b7d8a722aac91278623887b1fafb56b19853a (patch) | |
tree | adae0ea69a2382a8dae58c87ddd8e4ddd8243a5f | |
parent | f821a53b45d4b521ffb734b3b843f48e0d1ecfcd (diff) |
Move Karma section to new frontend testing guide
-rw-r--r-- | doc/development/new_fe_guide/development/testing.md | 31 | ||||
-rw-r--r-- | doc/development/testing_guide/frontend_testing.md | 35 |
2 files changed, 30 insertions, 36 deletions
diff --git a/doc/development/new_fe_guide/development/testing.md b/doc/development/new_fe_guide/development/testing.md index f5dfb1a31e1..5983e41dfa6 100644 --- a/doc/development/new_fe_guide/development/testing.md +++ b/doc/development/new_fe_guide/development/testing.md @@ -2,7 +2,7 @@ Tests relevant for frontend development can be found at the following places: -- `spec/javascripts/` which are run by Karma (command: `yarn karma`) and contain +- `spec/javascripts/` which are run by [Karma](#karma) and contain - [frontend unit tests](#frontend-unit-tests) - [frontend component tests](#frontend-component-tests) - [frontend integration tests](#frontend-integration-tests) @@ -273,6 +273,35 @@ wait_for_requests expect(page).not_to have_selector('.card') ``` +## Karma + +GitLab uses the [Karma](http://karma-runner.github.io/) test runner with [Jasmine](https://jasmine.github.io/) as its test +framework for our JavaScript unit and integration tests. For integration tests, +we generate HTML files using RSpec (see `spec/javascripts/fixtures/*.rb` for examples). +Some fixtures are still HAML templates that are translated to HTML files using the same mechanism (see `static_fixtures.rb`). +Adding these static fixtures should be avoided as they are harder to keep up to date with real views. +The existing static fixtures will be migrated over time. +Please see [gitlab-org/gitlab-ce#24753](https://gitlab.com/gitlab-org/gitlab-ce/issues/24753) to track our progress. +Fixtures are served during testing by the [jasmine-jquery](https://github.com/velesin/jasmine-jquery) plugin. + +JavaScript tests live in `spec/javascripts/`, matching the folder structure +of `app/assets/javascripts/`: `app/assets/javascripts/behaviors/autosize.js` +has a corresponding `spec/javascripts/behaviors/autosize_spec.js` file. + +Keep in mind that in a CI environment, these tests are run in a headless +browser and you will not have access to certain APIs, such as +[`Notification`](https://developer.mozilla.org/en-US/docs/Web/API/notification), +which will have to be stubbed. + +`rake karma` runs the frontend-only (JavaScript) tests. +It consists of two subtasks: + +- `rake karma:fixtures` (re-)generates fixtures +- `rake karma:tests` actually executes the tests + +As long as the fixtures don't change, `rake karma:tests` (or `yarn karma`) +is sufficient (and saves you some time). + ## Test helpers ### Vuex Helper: `testAction` diff --git a/doc/development/testing_guide/frontend_testing.md b/doc/development/testing_guide/frontend_testing.md index 6012f1080ab..515e5f2af06 100644 --- a/doc/development/testing_guide/frontend_testing.md +++ b/doc/development/testing_guide/frontend_testing.md @@ -13,26 +13,6 @@ in the future. See the [Testing Standards and Style Guidelines](index.md) page for more information on general testing practices at GitLab. -## Karma test suite - -GitLab uses the [Karma][karma] test runner with [Jasmine] as its test -framework for our JavaScript unit and integration tests. For integration tests, -we generate HTML files using RSpec (see `spec/javascripts/fixtures/*.rb` for examples). -Some fixtures are still HAML templates that are translated to HTML files using the same mechanism (see `static_fixtures.rb`). -Adding these static fixtures should be avoided as they are harder to keep up to date with real views. -The existing static fixtures will be migrated over time. -Please see [gitlab-org/gitlab-ce#24753](https://gitlab.com/gitlab-org/gitlab-ce/issues/24753) to track our progress. -Fixtures are served during testing by the [jasmine-jquery][jasmine-jquery] plugin. - -JavaScript tests live in `spec/javascripts/`, matching the folder structure -of `app/assets/javascripts/`: `app/assets/javascripts/behaviors/autosize.js` -has a corresponding `spec/javascripts/behaviors/autosize_spec.js` file. - -Keep in mind that in a CI environment, these tests are run in a headless -browser and you will not have access to certain APIs, such as -[`Notification`](https://developer.mozilla.org/en-US/docs/Web/API/notification), -which will have to be stubbed. - ### Best practices #### Naming unit tests @@ -180,17 +160,6 @@ If you cannot avoid using [`setTimeout`](https://developer.mozilla.org/en-US/doc See this [section][vue-test]. -### Running frontend tests - -`rake karma` runs the frontend-only (JavaScript) tests. -It consists of two subtasks: - -- `rake karma:fixtures` (re-)generates fixtures -- `rake karma:tests` actually executes the tests - -As long as the fixtures don't change, `rake karma:tests` (or `yarn karma`) -is sufficient (and saves you some time). - ### Live testing and focused testing While developing locally, it may be helpful to keep karma running so that you @@ -285,13 +254,9 @@ end ``` [jasmine-focus]: https://jasmine.github.io/2.5/focused_specs.html -[jasmine-jquery]: https://github.com/velesin/jasmine-jquery -[karma]: http://karma-runner.github.io/ [vue-test]: https://docs.gitlab.com/ce/development/fe_guide/vue.html#testing-vue-components [rspec]: https://github.com/rspec/rspec-rails#feature-specs [capybara]: https://github.com/teamcapybara/capybara -[karma]: http://karma-runner.github.io/ -[jasmine]: https://jasmine.github.io/ --- |