2016-01-16 18 views
8

Tek bir dosyayı pytest'te nasıl test edersiniz? Yalnızca göz ardı seçeneklerini bulabilir ve dokümanlarda "bu dosyayı yalnızca test et" seçeneğini kullanamazdım. Ide'de farklı dosya testlerini çalıştırmak istediğim için bu, setup.cfg yerine komut satırında çalışır. Tüm süit çok uzun sürüyor.Tek bir dosyayı pytest altında test etme

$ pytest -v /path/to/test_file.py 

-v bayrak ayrıntı artırmaktır:

cevap

9

basitçe dosyaya

py.test tests/unit/some_test_file.py

+0

Tamam, bu pycharm yapıyor ama yine de bütün paketi çalışan ne olduğu anlaşılıyor. Komut satırında py.test çalıştırmak bazı sebeplerden segfaults veriyor. Bunun orijinal soru kapsamı dışında olduğunu varsayalım, eğer işe alabilseydim cevabını kabul edeceğim. – simonzack

+1

Görünüşe göre setup.cfg dosyasındaki 'addopts', yol eklendiğinde sorun çıkıyor. – simonzack

+0

@simonzack Sanırım, dosyada bulunan birden fazla test vakasından tek bir test durumu çalıştırmak istersiniz. Bunu deneyin: py.test test_basic.py -k test_first Burada test_first, test_basic.py dosyasında bulunan bir test vakasıdır. –

7

Bu oldukça basit gibi

şey yolu py.test çalıştırın. Eğer bu dosyanın içinde belirli testini çalıştırmak isterseniz: Eğer isimleri kalıbında izleyin testi çalıştırmak istiyorsanız

$ pytest -v /path/to/test_file.py::test_name 

kullanabilirsiniz:

$ pytest -v -k "pattern_one or pattern_two" /path/to/test_file.py 
Ayrıca testler işaretleme seçeneği var

, işaretli testlerin bir alt kümesini çalıştırmak için -m bayrağını kullanabilirsiniz. run_these_please ile işaretlenmiş

test_file.py

def test_number_one(): 
    """Docstring""" 
    assert 1 == 1 


@pytest.mark.run_these_please 
def test_number_two(): 
    """Docstring""" 
    assert [1] == [1] 

çalıştırmak için testi:

$ pytest -v -m run_these_please /path/to/test_file.py 
+0

Bazı nedenlerle '-k' ve' yol/to/test.py :: test_method' benim için çalışmıyor. –

+0

İki kez kontrol edildim ve '-k 'yolu/to/test.py :: test_method' için –

+0

çalışıyor, hata var > HATA: bulunamadı:/home/namgivu/NN/code/myproject/test/modelleri/test_bill.py :: test_generate_for_today_normal_cycle ([]) –