[ 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.