Spec for UI unit testing
Blueprint ui-unit-tests Change-Id: Iad5295a4e836db95a0e6a41921b47933d2561ddf
This commit is contained in:
parent
e89770db3d
commit
7eecb5bbd8
164
specs/7.0/ui-unit-tests.rst
Normal file
164
specs/7.0/ui-unit-tests.rst
Normal file
@ -0,0 +1,164 @@
|
|||||||
|
..
|
||||||
|
This work is licensed under a Creative Commons Attribution 3.0 Unported
|
||||||
|
License.
|
||||||
|
|
||||||
|
http://creativecommons.org/licenses/by/3.0/legalcode
|
||||||
|
|
||||||
|
===================================
|
||||||
|
Intern-based Unit Tests for Fuel UI
|
||||||
|
===================================
|
||||||
|
|
||||||
|
https://blueprints.launchpad.net/fuel/+spec/ui-unit-tests
|
||||||
|
|
||||||
|
Implement unit test runner for Fuel UI.
|
||||||
|
|
||||||
|
|
||||||
|
Problem description
|
||||||
|
===================
|
||||||
|
|
||||||
|
Currently Fuel UI is covered only by functional tests based on CasperJS
|
||||||
|
functional testing framework. It allows end-to-end testing of Fuel UI, but
|
||||||
|
there are lots of cases which can't be covered (or covered with lots of
|
||||||
|
efforts) by functional testing. So we need also to be able to write and run
|
||||||
|
unit tests for Fuel UI.
|
||||||
|
|
||||||
|
|
||||||
|
Proposed change
|
||||||
|
===============
|
||||||
|
|
||||||
|
We should implement unit test runner for Fuel UI using Intern Framework:
|
||||||
|
* It should be available by running ``./run_tests.sh --ui-unit``.
|
||||||
|
* It should be voting.
|
||||||
|
* At least one test suite should be added (for Expression parser).
|
||||||
|
|
||||||
|
Alternatives
|
||||||
|
------------
|
||||||
|
|
||||||
|
There are quite a few JS unit test frameworks available, but we should go with
|
||||||
|
Intern as it also support functional testing and we plan to switch to it
|
||||||
|
someday.
|
||||||
|
|
||||||
|
Data model impact
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
None.
|
||||||
|
|
||||||
|
REST API impact
|
||||||
|
---------------
|
||||||
|
|
||||||
|
None.
|
||||||
|
|
||||||
|
Upgrade impact
|
||||||
|
--------------
|
||||||
|
|
||||||
|
None.
|
||||||
|
|
||||||
|
Security impact
|
||||||
|
---------------
|
||||||
|
|
||||||
|
None.
|
||||||
|
|
||||||
|
Notifications impact
|
||||||
|
--------------------
|
||||||
|
|
||||||
|
None.
|
||||||
|
|
||||||
|
Other end user impact
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
None.
|
||||||
|
|
||||||
|
Performance Impact
|
||||||
|
------------------
|
||||||
|
|
||||||
|
None.
|
||||||
|
|
||||||
|
Plugin impact
|
||||||
|
-------------
|
||||||
|
|
||||||
|
None.
|
||||||
|
|
||||||
|
Other deployer impact
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
None.
|
||||||
|
|
||||||
|
Developer impact
|
||||||
|
----------------
|
||||||
|
|
||||||
|
If suitable, new changes to Fuel UI should be covered by unit tests.
|
||||||
|
|
||||||
|
Infrastructure impact
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
Intern uses Selenium, so Java Runtime Environment (JRE) 1.6 or newer version
|
||||||
|
should be installed on Fuel CI workers.
|
||||||
|
|
||||||
|
|
||||||
|
Implementation
|
||||||
|
==============
|
||||||
|
|
||||||
|
Assignee(s)
|
||||||
|
-----------
|
||||||
|
|
||||||
|
Primary assignee:
|
||||||
|
* Vitaly Kramskikh <vkramskikh@mirantis.com>
|
||||||
|
|
||||||
|
Other contributors:
|
||||||
|
* Przemyslaw Kaminski <pkaminski@mirantis.com>
|
||||||
|
|
||||||
|
Mandatory design review:
|
||||||
|
* Vitaly Kramskikh <vkramskikh@mirantis.com>
|
||||||
|
|
||||||
|
QA engineer:
|
||||||
|
* Anastasia Palkina <apalkina@mirantis.com>
|
||||||
|
|
||||||
|
Work Items
|
||||||
|
----------
|
||||||
|
|
||||||
|
* Rearrange the code in place where it is needed so it can be covered by
|
||||||
|
unit tests.
|
||||||
|
* Update gulpfile so gulp can run unit tests by command ``gulp unit-tests``.
|
||||||
|
* Update ``run_tests.sh`` so in can run uint tests using ``--ui-unit``
|
||||||
|
argument. Unit tests should be voting.
|
||||||
|
* Add a test suite for Expression parser.
|
||||||
|
|
||||||
|
|
||||||
|
Dependencies
|
||||||
|
============
|
||||||
|
|
||||||
|
None.
|
||||||
|
|
||||||
|
|
||||||
|
Testing
|
||||||
|
=======
|
||||||
|
|
||||||
|
None.
|
||||||
|
|
||||||
|
Acceptance criteria
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
* It is possible to run unit tests by running ``./run_tests.sh --ui-unit``.
|
||||||
|
* Unit tests failure leads to failure of `verify-fuel-web` job.
|
||||||
|
* Documentation is updated to mention how to set up and run unit tests.
|
||||||
|
* Unit test suite for Expression parser exists.
|
||||||
|
|
||||||
|
|
||||||
|
Documentation Impact
|
||||||
|
====================
|
||||||
|
|
||||||
|
* Development environment setup docs should be modified to mention dependency
|
||||||
|
on JRE for UI unit testing.
|
||||||
|
|
||||||
|
* There should be described how to run unit tests on development environments.
|
||||||
|
|
||||||
|
|
||||||
|
References
|
||||||
|
==========
|
||||||
|
|
||||||
|
* InternJS library - https://theintern.github.io
|
||||||
|
* Spec for Intern-based functional tests - https://review.openstack.org/195520
|
||||||
|
* Gulpfile -
|
||||||
|
https://github.com/stackforge/fuel-web/blob/master/nailgun/gulpfile.js
|
||||||
|
* Expression parser -
|
||||||
|
https://github.com/stackforge/fuel-web/tree/master/nailgun/static/expression
|
Loading…
Reference in New Issue
Block a user