TestModule
TestModule
sınıfı, tek bir projedeki tek bir modülü temsil eder. Bu sınıf yalnızca ana iş parçacığında (main thread) kullanılabilir. Çalışma zamanı (runtime) görevleriyle çalışıyorsanız "Çalıştırıcı API" bölümüne bakın.
TestModule
örneği her zaman module
değerine sahip bir type
özelliğine sahiptir. Bunu farklı görev türlerini ayırt etmek için kullanabilirsiniz:
if (task.type === 'module') {
task; // TestModule
}
Süit Metotlarını Genişletme Uyarısı
TestModule
sınıfı, TestSuite
sınıfından tüm metotları ve özellikleri miras alır. Bu kılavuz yalnızca TestModule
'a özgü metotları ve özellikleri listeleyecektir.
moduleId
Bu genellikle mutlak bir Unix dosya yoludur (Windows sistemlerinde bile). Dosya diskte değilse sanal bir kimlik olabilir. Bu değer Vite'ın ModuleGraph
kimliğine karşılık gelir.
'C:/Users/Documents/project/example.test.ts'; // ✅
'/Users/mac/project/example.test.ts'; // ✅
'C:\\Users\\Documents\\project\\example.test.ts'; // ❌
state
function state(): TestModuleState;
testSuite.state()
ile aynı şekilde çalışır, ancak modül henüz yürütülmediyse queued
da döndürebilir.
meta 3.1.0+
function meta(): TaskMeta;
Modüle yürütme veya toplama sırasında eklenen özel metadata. Metadata, bir test çalışması sırasında task.meta
nesnesine bir özellik atanarak eklenebilir:
import { test } from 'vitest';
describe('the validation works correctly', task => {
// Toplama sırasında "decorated" özelliğini atayın
task.file.meta.decorated = false;
test('some test', ({ task }) => {
// Test çalışması sırasında "decorated" özelliğini atayın, yalnızca
// onTestCaseReady hook'unda kullanılabilir olur
task.file.meta.decorated = false;
});
});
TIP
Metadata toplama sırasında (test
fonksiyonunun dışında) eklendiyse, özel raporlayıcıdaki onTestModuleCollected
hook'unda kullanılabilir olacaktır.
diagnostic
function diagnostic(): ModuleDiagnostic;
Modülle ilgili süre, bellek kullanımı gibi faydalı bilgiler sağlar. Modül henüz yürütülmediyse, tüm teşhis değerleri 0
döndürecektir.
interface ModuleDiagnostic {
/**
* Bir ortamın içe aktarılması ve başlatılması için geçen süre.
*/
readonly environmentSetupDuration: number;
/**
* Vitest'in test donanımını (çalıştırıcı, mock'lar vb.) kurma süresi.
*/
readonly prepareDuration: number;
/**
* Test modülünü içe aktarma süresi.
* Bu, modüldeki her şeyin içe aktarılmasını ve süit geri çağrılarının yürütülmesini içerir.
*/
readonly collectDuration: number;
/**
* Kurulum modülünün içe aktarma süresi.
*/
readonly setupDuration: number;
/**
* Modüldeki tüm testlerin ve hook'ların toplam süresi.
*/
readonly duration: number;
/**
* Modül tarafından kullanılan bellek miktarı (bayt cinsinden).
* Bu değer yalnızca test `logHeapUsage` bayrağıyla yürütüldüğünde kullanılabilir.
*/
readonly heap: number | undefined;
/**
* Vitest'in işlediği her harici olmayan bağımlılığın içe aktarma süresi.
*/
readonly importDurations: Record<string, ImportDuration>;
}
/** Harici olmayan bir dosyanın içe aktarılması ve yürütülmesi için geçen süre. */
interface ImportDuration {
/** Dosyanın kendisini içe aktarma ve yürütme süresi; dosyanın yaptığı tüm harici olmayan içe aktarmalar dahil değildir. */
selfTime: number;
/** Dosyayı ve tüm içe aktarmalarını içe aktarma ve yürütme için geçen süre. */
totalTime: number;
}