Question

Actuellement, j'utilise une hiérarchie de test à 2 niveaux dans DUnit (Test Project -> Test Case -> Test method; voir exemple ci-dessous).Est-il possible d'introduire le 3e niveau ou même plus de niveaux?

DUnit Exemple

Était-ce utile?

La solution

Vous pouvez utiliser des suites de tests pour créer autant de niveaux d'imbrication que vous le souhaitez. La documentation offre l'exemple suivant:

L'unité TestFramework expose la classe TTestSuite, la classe qui implémente des suites de tests afin que vous puissiez créer des hiérarchies de test en utilisant plus code explicite:

La fonction suivante, UnitTests, crée une suite de tests et ajoute le deux classes de test:

function UnitTests: ITestSuite; 
var
  ATestSuite: TTestSuite; 
begin 
  ATestSuite := TTestSuite.create('Some trivial tests'); 
  ATestSuite.addTest(TTestArithmetic.Suite); 
  ATestSuite.addTest(TTestStringlist.Suite);  
  Result := ATestSuite; 
end;

Une autre façon d'implémenter la fonction ci-dessus serait:

function UnitTests: ITestSuite; 
begin
  Result := TTestSuite.Create(
    'Some trivial tests',
    [TTestArithmetic.Suite, TTestStringlist.Suite]
  );
end;

Dans l'exemple ci-dessus, le constructeur TTestSuite ajoute les tests du tableau passé au suite.

Vous pouvez enregistrer une suite de tests créée de l'une des manières ci-dessus en en utilisant le même appel que vous utilisez pour enregistrer des cas de test individuels:

initialization    
  RegisterTest('Simple Test', UnitTests);
end.

Lorsqu'il est exécuté avec GUITestRunner, vous verrez la nouvelle hiérarchie.

Autres conseils

Je construis une hiérarchie en mettant des contre-obliques dans le `SuitePath '.Par exemple:

initialization

  RegisterTests('Group1\Group2', [TExampleTests1.Suite,
                                  TExampleTests2.Suite]);

  RegisterTests('Group1\Group3', [TExampleTests3.Suite,
                                  TExampleTests4.Suite]);
end.

À la fin, j'obtiens quelque chose comme ça:

Exemple de hiérarchie de test DUnit

Beaucoup moins de farce qu'avec la manière de David, et vous pouvez répartir vos définitions de groupe sur des unités disparates.

Vous pouvez regrouper les tests associés dans des suites de tests, qui peuvent être imbriquées.

Si vous souhaitez le faire au moment de l'exécution, consultez mon "Open Component Test Framework (OpenCTF)" à sourceforge .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top