status = test_run()
status = test_run([])
status = test_run('minimal_tests')
status = test_run('-stoponfail')
status = test_run(modules)
status = test_run(file_to_test)
status = test_run(module_name, test_name)
status = test_run(modules, '-stoponfail')
status = test_run(file_to_test, '-stoponfail')
status = test_run(modules, option)
status = test_run(file_to_test, option)
status = test_run('minimal_tests', '-stoponfail')
status = test_run('minimal_tests', option)
status = test_run([], '-stoponfail')
status = test_run([], option)
status = test_run(modules, file_output)
status = test_run(file_to_test, file_output)
status = test_run([], file_output)
status = test_run(modules, option, xunitfile)
status = test_run(modules, '-stoponfail', xunitfile)
status = test_run(modules, option, xunitfile, '-stoponfail')
| Paramètre | Description |
|---|---|
| module_name | une chaîne ou une cellule de chaînes : nom du module ou liste de modules. Les cellules sont parcourues dans l'ordre des indices linéaires, y compris les vecteurs ligne et colonne. |
| file_to_test | une chaîne ou une cellule de chaînes : fichier à tester ou liste de noms de fichiers. Les cellules sont parcourues dans l'ordre des indices linéaires, y compris les vecteurs ligne et colonne. |
| test_name | une string ou une cellule de chaines : nom de fichier de test dans le repertoire tests du module. L'extension .m est optionnelle. |
| options | une string ou une cellule de chaînes : options supportées 'all', 'all_tests', 'unitary_tests', 'nonreg_tests' ou 'benchs'. La valeur par défaut est 'all_tests'. |
| xunitfile | une string : nom de fichier pour exporter les résultats en .xml ou .json compatible avec le format Xunit. |
| '-stoponfail' | une string : arrêter l'exécution des tests à la première erreur détectée. |
| 'Launcher', value | paire nom/valeur optionnelle : 'default' (défaut) ou 'webview' pour exécuter les tests tagués ADV-CLI via nelson-adv-cli --webview (backend figures web/RenderWeb). |
| Paramètre | Description |
|---|---|
| status | un logique : vrai si les tests passent. |
test_run est un wrapper de compatibilite au dessus de nelson.unittest.run.
La paire optionnelle 'Launcher', 'webview' peut être placée n'importe où dans la liste d'arguments. Elle route les tests tagués ADV-CLI vers nelson-adv-cli --webview afin que les figures utilisent le backend web headless (RenderWeb) ; les tags CLI et GUI sont inchangés. Le même choix peut être fixé via la variable d'environnement NELSON_UNITTEST_LAUNCHER.
test_run recherche par défaut les fichiers 'test_*.m' et 'bug_*.m', les exécute et affiche un rapport sur les succès ou les échecs.
Utilisez l'option explicite all pour inclure les fichiers 'bench_*.m' ou utilisez bench_run pour exécuter les benchmarks séparément.
Chaque test ou bench est execute par un processus enfant supervise. La reutilisation exige le tag explicite <--REUSE PROCESS-->.
Cela permet à la commande courante de continuer, même si le test a créé un environnement instable.
Cela permet également aux tests d'être indépendants les uns des autres.
Utilisez test_run(module_name, test_name) pour executer un fichier de test du repertoire tests d'un module.
Certains tags spéciaux peuvent être insérés dans les fichiers .m pour aider au traitement du test correspondant.
Ces tags doivent être trouvés dans les commentaires Nelson :
<--NOT FIXED--> This test is skipped because it is a reported bug, but it is not yet fixed.
<--INTERACTIVE TEST--> This test is skipped because it is interactive test.
<--CLI MODE--> This test will be executed by nelson-cli executable (default).
<--ADV-CLI MODE--> This test will be executed by nelson-adv-cli executable.
<--GUI MODE--> This test will be executed by nelson-gui executable.
<--CHECK REF--> This test will compare .ref available in same directory with output generated. see test_makeref to generate .ref file.
<--ENGLISH IMPOSED--> This test will be executed with the fr_FR language.
<--WINDOWS ONLY--> This test will be executed only on Windows.
<--MACOS ONLY--> This test will be executed only on Macos.
<--UNIX ONLY--> This test will be executed only on Unix.
<--WITH DISPLAY--> This test will be executed only if a display output is available.
<--RELEASE ONLY--> This test will be executed only if nelson is an release (not in debug mode).
<--EXCEL REQUIRED--> This test will be executed only if excel is detected (on Windows).
<--MPI MODE--> This test will be executed in MPI mode.
<--AUDIO INPUT REQUIRED--> This test will be executed if an audio input is available.
<--AUDIO OUTPUT REQUIRED--> This test will be executed if an audio output is available.
<--AUDIO REQUIRED--> This test requires the audio module (its file functions such as audioread and audiowrite) but no physical audio device. The module is loaded even in a test that belongs to another module; the test is not skipped when no audio device is present.
<--C/C++ COMPILER REQUIRED--> This test will be executed if an C/C++ compiler is available.
<--INDEX 64 BIT REQUIRED--> This test will be executed if 64 bit index is available.
<--NO USER MODULES--> This test will be executed without load user modules.
<--IPC REQUIRED--> This test will be executed if IPC is available.
<--SEQUENTIAL TEST REQUIRED--> This test will be executed sequentialy (1 worker).
<--NATIVE ARCHITECTURE TEST REQUIRED--> This test will be executed if application's build and architecture are same.
<--FILE WATCHER REQUIRED--> This test will be executed if file watcher is available.
<--PYTHON ENVIRONMENT REQUIRED--> This test will be executed if python environment is available and configured.
<--JULIA ENVIRONMENT REQUIRED--> This test will be executed if julia environment is available and configured.
<--REUSE PROCESS--> Ce test ou bench autorise le runner a reutiliser le meme processus enfant pour plusieurs fichiers tagues.
nelson.unittest.tuneReuse audite ces tags avec des campagnes natives isolees et reutilisees. L'ajout exige l'option explicite AllowAdd ; les modifications exigent Apply.
<--WEIGHT N--> Poids positif de planification. La file dynamique demarre les fichiers les plus lourds en premier.
nelson.unittest.tuneWeights peut proposer ou mettre explicitement a jour ces tags depuis les resultats mesures.
<--TIMEOUT N--> Delai d'execution positif par fichier, en secondes, qui remplace le minuteur par defaut pour ce seul fichier. Il ne modifie pas la priorite de planification (c'est <--WEIGHT N-->). A utiliser pour un test ou un bench legitimement long qui serait sinon interrompu par le minuteur par defaut. L'option globale Timeout, lorsqu'elle est definie, reste prioritaire sur le tag.
Les tests peuvent également être sautés dynamiquement en utilisant la fonction skip_testsuite.
Pour éviter de bloquer l'application, les tests ont un temps d'exécution de 2 minutes et les benchs ont un temps de 6 minutes, sauf si un tag <--TIMEOUT N--> fixe une valeur par fichier.
test_run utilise des workers pour executer les tests. Les fichiers non tagues sont executes dans des processus enfants separes ; les fichiers tagues avec <--REUSE PROCESS--> peuvent partager un processus enfant.
Les resultats sont affiches progressivement dans un ordre stable. Chaque ligne contient une icone de statut et son temps d'execution au format 🟢[ 9.800s].
Les tests avec <--SEQUENTIAL TEST REQUIRED--> sont évalués en dernier.
Les benchs utilisent un worker lorsque cinq threads ou moins sont disponibles, et deux workers sinon.
Pour l'API namespaced, utilisez nelson.unittest.discover, nelson.unittest.select, nelson.unittest.plan, nelson.unittest.run, nelson.unittest.tuneWeights, nelson.unittest.tuneReuse et nelson.unittest.report.
L'executeur interne de fichier de test est prive et n'est pas documente comme fonction utilisateur.
test_run('string');
test_run('string', 'test_strfind')
test_run({'string', 'time'})
test_run({'string', 'time'}, 'all', [tempdir(), 'tests.xml'])
nelson.unittest.tuneReuse([], ...
'Trials', 3, 'AllowAdd', true, 'Apply', true);
nelson.unittest.tuneWeights([], ...
'Apply', true, 'Workers', 1);
| Version | Description |
|---|---|
| 1.0.0 | version initiale |
| 1.3.0 | PYTHON ENVIRONMENT REQUIRED tag added |
| 1.4.0 | skip_testsuite function reference |
| 1.12.0 | JULIA ENVIRONMENT REQUIRED tag added |