The test infra consists mainly of the following runtime assemblies : TestRuntime.dll, TestContracts.dll, InternalUtilities.dll, QualityVaultFrontEnd.exe, QualityVaultUtilities.dll
InternalUtilities.dll is responsible for Log manager and Log Interface.
TestRuntime.dll and TestContracts.dll have the basic classes that describe the tests like : TestAttribute, TestInfo, TestRecord, VariationAttribute, VariationRecord, Discovery Adaptor, list and object serializers, etc.
QualityVault ( QualityVaultFrontEnd.exe and QualityVaultUtilities.dll) is the test harness that is responsible for launching the run, generating reports. It includes various components like - Discovery Engine ( finds all the tests in the code ), Filtering Engine ( filters out the tests that needs to be ignored ), Test Adaptors ( define the way in which and how the tests are to be discovered ), Test Collection and Test Executor ( responsible for launching the tests ). Quality Vault also has QualityVaultDebugger.exe which introduces debugging capability.
Apart from test infra runtime assemblies, we have a test driver Sti.exe which is responsible for launching each test.
There are different test adaptors that define the way in which the tests will be discovered.
- AnnotationAdaptor
- TestAttributeAdaptor
- XtcAdaptor : Looks for all the XTC files in a path, and processes these files to find tests and their support files. XTC files also define test driver and other information required to run the tests.
- VariationAttributeAdaptor
- DrtAdaptor : This adaptor takes in a file argument ( in
DiscoveryInfoDrts.xmlthe file isDrtList.xml) and reads it to find the tests and support files needed to run each test.
Depending on the adaptor a test area is using, the new test addition guidelines will be different.
Test harness uses DiscoveryInfo.xml and DiscoveryInfoDrts.xml when we run RunTests.cmd and RunDrts.cmd to find feature tests and DRTs respectively.
DiscoveryInfoDrts.xml then reads the list of DRTs from DrtList.xml