14#include "arcane/utils/ScopedPtr.h"
16#include "arcane/core/IUnitTest.h"
17#include "arcane/core/ISubDomain.h"
18#include "arcane/core/IApplication.h"
19#include "arcane/core/ITimeLoop.h"
20#include "arcane/core/ITimeLoopMng.h"
21#include "arcane/core/IXmlDocumentHolder.h"
22#include "arcane/core/IIOMng.h"
23#include "arcane/core/ArcaneException.h"
24#include "arcane/core/TimeLoopEntryPointInfo.h"
25#include "arcane/core/Directory.h"
26#include "arcane/core/XmlNode.h"
27#include "arcane/core/IParallelMng.h"
28#include "arcane/core/DomUtils.h"
30#include "arcane/std/UnitTest_axl.h"
58 void unitTestInit()
override;
59 void unitTestDoTest()
override;
60 void unitTestExit()
override;
69 void _checkCreateXmlTestDocument();
83, m_tests_doc(
domutils::createXmlDocument())
93staticInitialize(ISubDomain* sd)
95 String time_loop_name(
"UnitTest");
96 ITimeLoopMng* tlm = sd->timeLoopMng();
97 ITimeLoop* time_loop = tlm->createTimeLoop(time_loop_name);
100 List<TimeLoopEntryPointInfo> clist;
101 clist.add(TimeLoopEntryPointInfo(
"UnitTest.UnitTestBuild"));
106 List<TimeLoopEntryPointInfo> clist;
107 clist.add(TimeLoopEntryPointInfo(
"UnitTest.UnitTestInit"));
112 List<TimeLoopEntryPointInfo> clist;
113 clist.add(TimeLoopEntryPointInfo(
"UnitTest.UnitTestDoTest"));
118 List<TimeLoopEntryPointInfo> clist;
119 clist.add(TimeLoopEntryPointInfo(
"UnitTest.UnitTestExit"));
125 clist.add(
"UnitTest");
126 clist.add(
"ArcanePostProcessing");
127 time_loop->setRequiredModulesName(clist);
130 tlm->registerTimeLoop(time_loop);
140 service->buildInitializeTest();
143 service->buildInitializeTest();
156 service->initializeTest();
159 service->initializeTest();
170 for (IUnitTest* service :
options()->test)
171 service->executeTest();
173 if (
options()->xmlTest.size() > 0) {
174 XmlNode xtests =
m_tests_doc->documentNode().documentElement();
175 for (IXmlUnitTest* service :
options()->xmlTest) {
176 XmlNode xservice = xtests.createAndAppendElement(
"service");
177 if (!service->executeTest(xservice))
189 for (IUnitTest* service :
options()->test)
190 service->finalizeTest();
192 for (IXmlUnitTest* service :
options()->xmlTest)
193 service->finalizeTest();
195 if (
options()->xmlTest.size() > 0) {
200 Directory listing_dir(
subDomain()->listingDirectory());
201 String filename(listing_dir.file(
"unittests.xml"));
202 info() <<
"Output of the report of the unit test in '" << filename <<
"'";
208 ARCANE_FATAL(
"Some errors have occured in the unit tests.");
#define ARCANE_FATAL(...)
Macro envoyant une exception FatalErrorException.
ISubDomain * subDomain() const override
Sous-domaine associé au module.
Generation de la classe de base du Module.
CaseOptionsUnitTest * options() const
Options du jeu de données du module.
VariableScalarReal m_global_deltat
Delta T global.
virtual bool isMasterIO() const =0
true si l'instance est un gestionnaire maître des entrées/sorties.
Interface du gestionnaire d'un sous-domaine.
virtual IIOMng * ioMng()=0
Retourne le gestionnaire des entrées/sorties.
virtual IParallelMng * parallelMng()=0
Retourne le gestionnaire de parallélisme.
virtual ITimeLoopMng * timeLoopMng()=0
Retourne le gestionnaire de la boucle en temps.
static const char * WExit
appelé lors de la terminaison du code.
static const char * WBuild
appelé lors de la lecture du jeu de données
static const char * WComputeLoop
appelé pendant la boucle de calcul
static const char * WInit
appelé pendant l'initialisation, l'initialisation d'une reprise ou d'un nouveau cas
Interface d'un service de test unitaire.
Interface d'un service de test unitaire fournissant un rapport de test sous forme d'un noeud XML.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Informations pour construire un module.
ScopedPtrT< IXmlDocumentHolder > m_tests_doc
Traces des tests unitaires.
VersionInfo versionInfo() const override
Version du module.
bool m_success
Vrai tant qu'un test unitaire n'a pas retourné d'erreur.
void unitTestBuild() override
points d'entrée
Informations sur une version.
TraceMessage info() const
Flot pour un message d'information.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
List< String > StringList
Tableau de chaînes de caractères unicode.