Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
1
Merge Requests
1
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
gitlab-ce
Commits
db349eeb
Commit
db349eeb
authored
May 17, 2017
by
Luke "Jared" Bennett
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Apply CE patch for fe_guide/testing.md updates
parent
238a6d76
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
19 additions
and
8 deletions
+19
-8
doc/development/fe_guide/img/testing_triangle.png
doc/development/fe_guide/img/testing_triangle.png
+0
-0
doc/development/fe_guide/testing.md
doc/development/fe_guide/testing.md
+19
-8
No files found.
doc/development/fe_guide/img/testing_triangle.png
0 → 100644
View file @
db349eeb
11.6 KB
doc/development/fe_guide/testing.md
View file @
db349eeb
# Frontend Testing
There are two types of tests you'll encounter while developing frontend code
at GitLab. We use Karma and Jasmine for JavaScript unit testing, and RSpec
feature tests with Capybara for integration testing.
There are two types of test
suite
s you'll encounter while developing frontend code
at GitLab. We use Karma and Jasmine for JavaScript unit
and integration
testing, and RSpec
feature tests with Capybara for
e2e (end-to-end)
integration testing.
Feature tests need to be written for all new features. Regression tests ought
to be written for all bug fixes to prevent them from recurring in the future.
Unit and feature tests need to be written for all new features.
Most of the time, you should use rspec for your feature tests.
There are cases where the behaviour you are testing is not worth the time spent running the full application,
for example, if you are testing styling, animation or small actions that don't involve the backend,
you should write an integration test using Jasmine.
![
Testing priority triangle
](
img/testing_triangle.png
)
_This diagram demonstrates the relative priority of each test type we use_
Regression tests should be written for bug fixes to prevent them from recurring in the future.
See
[
the Testing Standards and Style Guidelines
](
../testing.md
)
for more information on general testing practices at GitLab.
...
...
@@ -13,10 +22,12 @@ for more information on general testing practices at GitLab.
## Karma test suite
GitLab uses the
[
Karma
][
karma
]
test runner with
[
Jasmine
][
jasmine
]
as its test
framework for our JavaScript unit
tests. For tests that rely on DOM
manipulation, we generate HTML files using RSpec suites
(see
`spec/javascripts/fixtures/*.rb`
for examples).
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`
).
Those will be migrated over time.
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
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment