Testing Files Generator
Türkçe

İnsanlar bunu ne için kullanıyor

İnsanlardan dosya kabul eden hemen her projede çıkan beş iş ve her birini yapan komut. Aşağıdaki her örnek yazıldığı gibi çalışır.

Yükleme sınırları

Bir dosya boyutu sınırının söylediği yerde uygulanıp uygulanmadığını test etmek

Bir sınır bir değil üç test durumudur: hemen altı, tam üstü ve hemen üzeri. Bunları elle yapmak bayt sayıları hesaplamak ve bir kayma yapmadığınızı ummak demektir. Bunun yerine seti isteyin:

tfg generate --preset size-boundaries --limit 1mb --spread 1B --format pdf --out ./edges

1048575, 1048576 ve 1048577 baytlık üç gerçek PDF ve ilk ikisinin kabul edilmesi, üçüncünün size_limit nedeniyle reddedilmesi gerektiğini söyleyen bir manifest alırsınız. Testiniz üç assertion'ı elle yazmanız yerine beklentiyi okur - sınır değiştiğinde bir sayıyı değiştirip yeniden çalıştırırsınız.

Satır içi tek bir sınır seti istediğinizde aynısı hazır ayar olmadan da çalışır:

tfg generate --format png --boundary 5mb --out ./png-edges

Sürekli entegrasyon

Fixture'ları kaybetmeden depodan uzak tutmak

Büyük ikili fixture'lar bir depoyu klonlamada yavaş, incelemede zahmetli yapar ve biri değiştirildiğinde neyin değiştiğini kimse söyleyemez. Tarif, özdeş dosyaları yeniden kuran birkaç yüz karakterlik YAML'dir - bayt bayt, her makinede - çünkü her dosya çalıştırmanın seed'inden türetilir.

- name: build the fixtures
  run: tfg generate fixtures.yaml --out ./fixtures

- name: run the tests
  run: pytest tests/

- name: nothing moved
  run: tfg verify ./fixtures/manifest.json

Her sonun kendi çıkış kodu vardır, bu yüzden bir hat kötü bir tarifi dolu bir diskten ve bir doğrulama uyuşmazlığından ayırt edebilir. Başarısız bir çalıştırma standart çıktıya hiçbir şey yazdırmaz, bu da bir günlük ayrıştırıcısının hatayı veri sanmasını önler.

Ölçek

Klasör büyükken ne olduğunu öğrenmek

İçe aktarma rutinleri, gece işleri ve dizin listeleri on bin dosyada ona göre farklı davranır. Bir aralıktan çekilen boyutlar seti on bin özdeş dosya yerine gerçek trafiğe benzetir ve çekiliş seed'den gelir, yani set yarın da aynıdır.

tfg generate --format log --size-range 1kb-8kb --count 10000 --out ./fixtures

Toplam gigabayt cinsinden ölçülüyorsa önem kazanan şeyi, bir çalıştırmanın bir şey yazmadan önce neye mal olacağını denetleyin:

tfg generate --format log --size-range 1kb-8kb --count 10000 --dry-run

Diskteki boş alandan büyük bir çalıştırma, diski doldurup yarıda başarısız olmak yerine ilk bayt yazılmadan önce reddedilir.

Arşivler

Bir açıcıyı gerçekten dosya içeren bir arşivle test etmek

Doğru uzantılı boş bir arşiv, onu açıp içindekini dolaşan kod hakkında hiçbir şey kanıtlamaz. İçeriği bildirin, arşiv onu gerçekten içersin:

targets:
  - id: bundle
    format: zip
    contains:
      - format: txt
        count: 200
        size: 4kb

İç içe geçme derinliği, girdi sayıları ve içindekilerin boyutu, bir içe aktarma rutininin görüş sahibi olduğu şeylerdir ve bu görüşlerin ne olduğunu böyle öğrenirsiniz.

Ayrıştırıcılar ve görüntüleyiciler

Kendi kodunuzun bir biçimi gerçek yazılım gibi okuduğunu denetlemek

Buradaki her biçim yayımlanmadan önce bağımsız bir okuyucuyla doğrulanır - bir PNG açılır ve pikselleri karşılaştırılır, bir DOCX ayrı kitaplıklarca geri okunur, bir arşiv çıkarılır. Bu, ayrıştırıcınızın reddettiği bir dosyanın üretici hakkında değil ayrıştırıcınız hakkında bir bulgu olduğu anlamına gelir.

tfg generate --format docx --size 300kb --set paragraphs=120 --out ./documents
tfg generate --format xlsx --size 2mb --set rows=400 --set columns=6 --out ./sheets

Biçimler sayfası her birinin kabul ettiği ayarları ve her birinin olabileceği en küçük dosyayı listeler.

Rehberler

Bunlardan ikisi daha ayrıntılı

Kimler için

QA mühendisleri, test otomasyonu ve kodunun arkasında bir yükleme formu, içe aktarma rutini, ayrıştırıcı veya depolama kotası olan herkes. Hiç ağı olmayan bir makinede çalışır, bu da tarayıcı tabanlı bir üreticinin seçenek olmadığı kapalı bir kurumsal ortamda önem taşır.

Ücretsiz ve açık kaynak, GPL-3.0. Kayıt gerekmez. Windows ve macOS indirmeleri imzalıdır ve uyarı vermeden başlar.