[ English | 中文 (简体, 中国) | русский | português (Brasil) | नेपाली | 한국어 (대한민국) | Indonesia | français | español | esperanto | English (United Kingdom) | Deutsch ]

Tes Horizon dan Anda

Cara menjalankan tes

Karena Horizon terdiri dari aplikasi horizon dan proyek referensi openstack_dashboard, sebenarnya ada dua set unit test. Meskipun dapat dijalankan secara individual tanpa masalah, ada cara yang lebih mudah:

Termasuk di root repositori adalah konfigurasi tox.ini yang memanggil kedua set tes, dan secara opsional menghasilkan analisis pada kedua komponen dalam proses. tox adalah apa yang digunakan Jenkins untuk memverifikasi stabilitas proyek, jadi Anda harus memastikan Anda menjalankannya dan lolos sebelum Anda mengirimkan penarikan requests/patches.

Untuk menjalankan semua tes:

$ tox

Dimungkinkan juga untuk menjalankan subset tes. Buka tox.ini di direktori root Horizon untuk melihat daftar lingkungan pengujian. Anda dapat membaca lebih lanjut tentang tox secara umum di https://tox.readthedocs.io/en/latest/.

Secara default menjalankan tes Selenium akan membuka browser Firefox Anda (Anda harus menginstalnya terlebih dahulu, jika tidak kesalahan akan muncul), dan Anda akan dapat melihat tindakan tes:

$ tox -e selenium

Jika Anda ingin menjalankan suite tanpa kepala, tanpa bisa melihatnya (seperti yang dijalankan pada Jenkins), Anda dapat menjalankan tes:

$ tox -e selenium-headless

Selenium akan menggunakan tampilan virtual dalam kasus ini, bukan milik Anda sendiri. Untuk menjalankan tes dengan cara ini Anda harus menginstal dependensi xvfb, seperti ini:

$ sudo apt install xvfb

untuk flavour Debian OS, atau untuk flavour Fedora/Red Hat:

$ sudo dnf install xorg-x11-server-Xvfb

Jika Anda tidak dapat menjalankan tampilan virtual, atau memilih untuk tidak melakukannya, Anda dapat menggunakan driver web PhantomJS sebagai gantinya:

$ tox -e selenium-phantomjs

Jika Anda perlu menginstal PhantomJS, Anda dapat melakukannya dengan npm seperti ini:

$ npm -g install phantomjs

Atau, banyak distribusi memiliki paket sistem untuk PhantomJS, atau dapat diunduh dari http://phantomjs.org/download.html.

Untuk menjalankan tes integrasi, Anda harus menggunakan integration tox environment:

$ tox -e integration

Tes-tes ini membutuhkan geckodriver yang diinstal. Itu dapat diunduh dari https://github.com/mozilla/geckodriver/releases.

tox Test Environments

Ini adalah daftar test environments yang tersedia untuk dijalankan oleh tox -e <name>.

pep8

Menjalankan pep8, yang merupakan alat yang memeriksa gaya kode Python. Anda dapat membaca lebih lanjut tentang pep8 di https://www.python.org/dev/peps/pep-0008/

py37

Runs the Python unit tests against the current default version of Django with Python 3.7 environment. Check requirements.txt in horizon repository to know which version of Django is actually used.

All other dependencies are as defined by the upper-constraints file at https://opendev.org/openstack/requirements/raw/branch/master/upper-constraints.txt.

Anda dapat menjalankan subset tes dengan melewati jalur tes sebagai argumen untuk tox:

$ tox -e py37 -- openstack_dashboard/dashboards/identity/users/tests.py

Berikut ini adalah lebih banyak contoh untuk menjalankan kelas tes khusus dan tes khusus:

$ tox -e py37 -- openstack_dashboard/dashboards/identity/users/tests.py::UsersViewTests
$ tox -e py37 -- openstack_dashboard/dashboards/identity/users/tests.py::UsersViewTests::test_index

Cara detail untuk menentukan tes dapat ditemukan di pytest documentation.

Anda juga bisa memberikan argumen lain. Misalnya, untuk masuk ke debugger langsung saat tes gagal dapat Anda gunakan:

$ tox -e py37 -- --pdb

py3-dj42

Runs the Python unit tests against Django 4.2.

py311

Runs the Python unit tests with a Python 3.11 environment.

releasenotes

Outputs Horizons merilis catatan sebagai HTML ke releasenotes/build/html.

Juga mengambil pembuat alternatif sebagai argumen opsional, seperti tox -e docs -- <builder>, yang akan ditampilkan ke releasenotes/build/<builder>. Pembangun yang tersedia terdaftar di http://www.sphinx-doc.org/en/latest/builders.html

Lingkungan ini juga menjalankan pemeriksa gaya dokumentasi doc8 terhadap file RST dan YAML di bawah releasenotes/source untuk menjaga gaya dokumentasi tetap konsisten. Jika Anda ingin menjalankan doc8 secara manual, lihat **docs ** environment di bawah ini.

npm

Instal dependensi npm yang tercantum dalam package.json dan jalankan tes JavaScript. Dapat juga mengambil argumen opsional, yang akan dieksekusi sebagai skrip npm setelah instalasi dependensi, sebagai ganti test.

Contoh:

$ tox -e npm -- lintq

docs

Menampilkan dokumentasi Horizons sebagai HTML ke doc/build/html.

Juga mengambil pembuat alternatif sebagai argumen opsional, seperti tox -e docs -- <builder>, yang akan ditampilkan ke doc/build/<builder>. Pembangun yang tersedia terdaftar di http://www.sphinx-doc.org/en/latest/builders.html

Contoh:

$ tox -e docs -- latexpdf

Lingkungan ini juga menjalankan pemeriksa gaya dokumentasi doc8 terhadap file RST di bawah doc/source untuk menjaga gaya dokumentasi tetap konsisten. Jika Anda ingin menjalankan doc8 secara manual, jalankan:

# Activate virtualenv
$ . .tox/docs/bin/activate
$ doc8 doc/source

Tes menulis

Horizon menggunakan unit mesin uji Django (yang memperluas perpustakaan unittest2 Python) sebagai inti dari rangkaian pengujiannya. Dengan demikian, semua tes untuk kode Python harus ditulis sebagai unit test. Maaf, tidak ada dokumen (no doctest).

Secara umum kode baru tanpa tes unit tidak akan diterima, dan setiap perbaikan bug must menyertakan uji regresi.

Untuk diskusi pengujian yang lebih mendalam, lihat testing topic guide.