Saya memiliki file bernama test_web.py berisi kelas TestWeb dan banyak metode bernama seperti test_something ().
Saya dapat menjalankan setiap tes di kelas seperti ini:
$ nosetests test_web.py
...
======================================================================
FAIL: checkout test
----------------------------------------------------------------------
Traceback (most recent call last):
File "/Users/me/path/here/test_web.py", line 187, in test_checkout
...
Tapi sepertinya saya tidak bisa menjalankan tes individu. Ini memberi saya kesalahan "Tidak ada pengujian seperti itu" saat dijalankan dalam PWD yang sama:
$ nosetests test_web.py:test_checkout
$ nosetests TestWeb:test_checkout
Apa yang salah di sini?
Jawaban:
Anda harus menentukannya seperti ini:,
nosetests <file>:<Test_Case>.<test_method>
atauLihat dokumennya
sumber
Anda juga dapat menentukan modul:
sumber
nosetests
atau apa, tetapi sintaks itu gagal. Apa yang tidak bekerja, meskipun, adalah:nosetests tests/test_integration:IntegrationTests.test_user_search_returns_users
, berarti - file referensi sebagai file, bukan modul Python, menggunakan/
daripada.
tests
tidak menjadi modul dalam penyiapan Anda?__init__.py
ditests
direktori. Sudah selesai dilakukan dengan baik! Terima kasihMenentukan nama pada baris perintah seperti yang disarankan jawaban lain tidak berfungsi dan berguna. Namun, ketika saya sedang mengerjakan tes menulis, saya sering menemukan bahwa saya hanya ingin menjalankan tes yang sedang saya kerjakan, dan nama yang harus saya tulis di baris perintah menjadi cukup panjang dan rumit untuk ditulis . Dalam kasus seperti itu, saya lebih suka menggunakan dekorator dan bendera khusus.
Saya mendefinisikan
wipd
("dekorator sedang dalam proses") seperti ini:Ini mendefinisikan dekorator
@wipd
yang akan menyetelwip
atribut pada objek yang didekorasi. Misalnya:Kemudian
-a wip
dapat digunakan di baris perintah untuk mempersempit pelaksanaan pengujian ke yang ditandai dengan@wipd
.Catatan tentang nama ...
Saya menggunakan nama
@wipd
untuk dekorator daripada@wip
untuk menghindari masalah seperti ini:Ini
import
akan menjadikanwip
dekorator sebagai anggota kelas , dan semua tes di kelas akan dipilih. Theattrib
Plugin cek kelas induk dari metode tes untuk melihat apakah atribut yang dipilih ada di sana juga, dan atribut yang dibuat dan diuji olehattrib
tidak ada di ruang terpisah. Jadi jika Anda menguji dengan-a foo
dan kelas Anda berisifoo = "platypus"
, maka semua tes di kelas akan dipilih oleh plugin.sumber
Untuk menjalankan beberapa pengujian tertentu, Anda cukup menambahkannya ke baris perintah, dipisahkan oleh spasi.
sumber
Dalam pengujian saya, menentukan pengujian dengan nama modul tidak berfungsi
Anda harus menentukan jalur sebenarnya ke
.py
:Ini dengan
nose==1.3.7
sumber
Persyaratan saya adalah menjalankan satu tes dalam file tes yang ada di direktori windows lain - ini dilakukan dari prompt perintah anaconda sebagai berikut:
menjalankan nosetests dari:
tetapi test_MyTestFile.py dan methodFile.py ada di:
jalankan pengujian tunggal dengan menyertakan jalur dengan tanda kutip sebagai berikut:
test_MyTestFile.py terlihat seperti ini:
methodFile.py terlihat seperti ini:
sumber