Test Filtreleme
Süitleri ve testleri filtreleme, zaman aşımı ve eşzamanlı çalıştırma
CLI
CLI'yı kullanarak test dosyalarını isme göre filtreleyebilirsiniz:
$ vitest basic
Bu komut, yalnızca basic
kelimesini içeren test dosyalarını çalıştıracaktır, örneğin:
basic.test.ts
basic-foo.test.ts
basic/foo.test.ts
Testleri tam adına göre filtrelemek için -t, --testNamePattern <pattern>
seçeneğini de kullanabilirsiniz. Bu seçenek, dosya adı yerine testin içinde tanımlanmış adına göre filtreleme yapmak istediğinizde faydalıdır.
Vitest 3'ten itibaren, testleri dosya adı ve satır numarasına göre de belirtebilirsiniz:
$ vitest basic/foo.test.ts:10
WARNING
Vitest'in bu özelliğinin çalışabilmesi için tam dosya adını gerektirdiğini unutmayın. Bu, geçerli çalışma dizinine göreceli bir yol veya mutlak bir dosya yolu olabilir.
$ vitest basic/foo.js:10 # ✅
$ vitest ./basic/foo.js:10 # ✅
$ vitest /users/project/basic/foo.js:10 # ✅
$ vitest foo:10 # ❌
$ vitest ./basic/foo:10 # ❌
Şu anda Vitest, satır aralıklarını desteklememektedir:
$ vitest basic/foo.test.ts:10, basic/foo.test.ts:25 # ✅
$ vitest basic/foo.test.ts:10-25 # ❌
Zaman Aşımı Belirtme
Testlere isteğe bağlı olarak üçüncü bir argüman olarak milisaniye cinsinden bir zaman aşımı değeri geçirebilirsiniz. Varsayılan değer 5 saniyedir.
import { test } from 'vitest';
test('name', async () => {
/* ... */
}, 1000);
Hook'lar da 5 saniyelik varsayılan değerle bir zaman aşımı kabul edebilir.
import { beforeAll } from 'vitest';
beforeAll(async () => {
/* ... */
}, 1000);
Süitleri ve Testleri Atlamak
Belirli süitleri veya testleri çalıştırmamak için .skip
komutunu kullanın:
import { assert, describe, it } from 'vitest';
describe.skip('skipped suite', () => {
it('test', () => {
// Süit atlandı, hata yok
assert.equal(Math.sqrt(4), 3);
});
});
describe('suite', () => {
it.skip('skipped test', () => {
// Test atlandı, hata yok
assert.equal(Math.sqrt(4), 3);
});
});
Çalıştırılacak Süitleri ve Testleri Seçme
Sadece belirli süitleri veya testleri çalıştırmak için .only
komutunu kullanın:
import { assert, describe, it } from 'vitest';
// Yalnızca bu süit (ve only ile işaretlenmiş diğerleri) çalıştırılır
describe.only('suite', () => {
it('test', () => {
assert.equal(Math.sqrt(4), 3);
});
});
describe('another suite', () => {
it('skipped test', () => {
// Test atlandı, çünkü testler Only modunda çalışıyor
assert.equal(Math.sqrt(4), 3);
});
it.only('test', () => {
// Yalnızca bu test (ve only ile işaretlenmiş diğerleri) çalıştırılır
assert.equal(Math.sqrt(4), 2);
});
});
Uygulanmamış Süitler ve Testler
Uygulanması gereken süitleri ve testleri taslak olarak işaretlemek için .todo
kullanın:
import { describe, it } from 'vitest';
// Bu süit için raporda bir kayıt gösterilecektir
describe.todo('unimplemented suite');
// Bu test için raporda bir kayıt gösterilecektir
describe('suite', () => {
it.todo('unimplemented test');
});