skyline/doc/source/test/ready-to-work.rst
yangsngshaoxue 2f4eb2d36b docs: Change md file to rst file
add test guide

Change-Id: I3194ff9cd846ded71852fff0ad20e56c383bf77a
2022-09-08 08:19:26 +00:00

163 lines
4.0 KiB
ReStructuredText

Ready To Work
~~~~~~~~~~~~~~
We provide two test methods
- E2E test
- Focus on function point testing
- Can provide code coverage data
- User ``Cypress`` frame
- Test results are saved in a static page for easy preview
- Unit test
- Focus on basic function testing
- User ``Jest`` frame
E2E test
---------
#. Set up E2E test environment
.. note::
For more information about installation, refer to the :ref:`source-install-ubuntu`
E2E test environment has been successfully built in Centos and wsl2 of Windows
#. node environment
- requirement in package.json: ``"node": ">=10.22.0"``
- verify nodejs version
.. code-block:: console
node -v
#. install yarn
.. code-block:: console
npm install -g yarn
#. Install dependencies
- Execute in the project root directory, which is the same level as
``package.json``, and wait patiently for the installation to complete
.. code-block:: console
yarn install
#. Install system dependencies
- `Ubuntu/Debian`
.. code-block:: console
sudo apt-get install libgtk2.0-0 libgtk-3-0 libgbm-dev libnotify-dev libgconf-2-4 libnss3 libxss1 libasound2 libxtst6 xauth xvfb
- `CentOS`
.. code-block:: console
yum install -y xorg-x11-server-Xvfb gtk2-devel gtk3-devel libnotify-devel GConf2 nss libXScrnSaver alsa-lib
#. Adjust the access path, account and other information
E2E configuration files are stored in ``test/e2e/config/config.yaml``,
Configured in it:
* :guilabel:`baseUrl`, test access path
* :guilabel:`env`, environment variable
- :guilabel:`switchToAdminProject`, Switch to the ``admin`` project
after logging in
- :guilabel:`username`, User name to access the console, a user with
console operation permissions is required
- :guilabel:`password`, Password to access the console
- :guilabel:`usernameAdmin`, The user name to access the management
platform, a user with the operation authority of the management
platform is required
- :guilabel:`passwordAdmin`, Password to access the management platform
* :guilabel:`testFiles`, Test files list
The configuration change can be completed by directly modifying
the corresponding value in ``config.yaml``
You can also complete configuration changes through ``local_config.yaml``
- Copy ``test/e2e/config/config.yaml`` to ``test/e2e/config/local_config.yaml``
- Modify the corresponding variables in ``local_config.yaml``
- For the value of the variable, the priority is: ``local_config.yaml`` > ``config.yaml``
#. Command line run E2E
.. code-block:: console
yarn run test:e2e
#. GUI running E2E
.. code-block:: console
yarn run test:e2e:open
#. E2E test results
After the test run is over, visit ``test/e2e/report/merge-report.html`` to view
#. E2E Code coverage test results
After the test run is over, visit ``coverage/lcov-report/index.html`` to view
.. note::
Code coverage, the front-end package corresponding to ``baseUrl`` that
needs E2E access, is ``dist`` package with a detectable code coverage version
.. code-block:: console
yarn run build:test
The file packaged in the above way is a front-end package with testable
code coverage
Below, the nginx configuration for front-end access to the front-end
package with code coverage function is given
.. code-block:: nginx
server {
listen 0.0.0.0:8088 default_server;
root /path/to/skyline-console/dist;
index index.html;
server_name _;
location / {
try_files $uri $uri/ /index.html;
}
location /api {
proxy_pass http://<backend_address>;
}
}
Unit test
----------
#. Command line run unit tests
.. code-block:: console
yarn run test:unit
#. Unit test results
You can view the running results directly in the command line console