Bagaimana Anda melewatkan pengujian unit di Django?


96

Bagaimana secara paksa melewati pengujian unit di Django?

@skipif dan @skipunless adalah semua yang saya temukan, tetapi saya hanya ingin melewatkan pengujian sekarang untuk keperluan debugging sementara saya membereskan beberapa hal.

Jawaban:


152

Modul ter-unittest Python memiliki beberapa dekorator:

Ada tua biasa @skip:

from unittest import skip

@skip("Don't want to test")
def test_something():
    ...

Jika Anda tidak dapat menggunakan @skipkarena alasan tertentu, @skipIfharus bekerja. Trik saja untuk selalu melewati dengan argumen True:

@skipIf(True, "I don't want to run this test yet")
def test_something():
    ...

dokumen unittest

Dokumen tentang melewatkan tes

Jika Anda tidak ingin menjalankan file pengujian tertentu, cara terbaik mungkin adalah menggunakan fabatau alat lain dan menjalankan pengujian tertentu.


Ahh, saya tidak tahu bahwa Anda bisa menipu penerjemah dengan argumen Benar itu. Terima kasih!
user798719

Bisakah Anda menjelaskan tentang kemungkinan alasan tidak dapat menggunakan @skip?
Kal

1
Anda bahkan dapat melewati kelas TestCase.
wieczorek1990

69

Django 1.10 mengizinkan penggunaan tag untuk pengujian unit. Anda kemudian dapat menggunakan --exclude-tag=tag_namebendera tersebut untuk mengecualikan tag tertentu:

from django.test import tag

class SampleTestCase(TestCase):

    @tag('fast')
    def test_fast(self):
        ...

    @tag('slow')
    def test_slow(self):
        ...

    @tag('slow', 'core')
    def test_slow_but_core(self):
        ...

Pada contoh di atas, untuk mengecualikan pengujian Anda dengan slowtag " ", Anda akan menjalankan:

$ ./manage.py test --exclude-tag=slow

Apakah ada kebalikan dari --exclude-tag, misalnya --include-tagtetapi perintah ini tidak ada.
JohnnyQ

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.