Article
· Sept 7 2m de lecture

Tests unitaires avec VSCode et une version de IRIS antérieure à 2023.3

Introduction

Cet article décrit comment exécuter les tests unitaires lorsque la fonctionnalité intégrée à l'extension InterSystems ObjectScript n'est pas disponible car la version de IRIS utilisée est antérieure à 2023.3.

Au passage, l'extension ne semble pas supporter les tests pour les productions d'interopérabilité (classes qui étendent %UnitTest.TestProduction) , mais c'est seulement lié à la manière de déterminer si la classe comporte une méthode de test. Il suffit d'ajouter une méthode dont le nom commence par 'Test' pour que la classe soit reconnue par l'extension.

Préparation

Le développement et l'exécution des tests unitaires est décrit dans la documentation (Creating Unit Tests | InterSystems IRIS Data Platform 2024.2).
Pour rappel, il est indispensable d'assigner un chemin vers un répertoire de test au global ^UnitTestRoot.

Exécution des tests

L'extension s'intègre à la fonctionnalité "Run & Debug" de VSCode et permet d'exécuter en mode débogage n'importe quelle méthode de classe. Le fichier de configuration .vscode/launch.json contient les configurations de démarrage. 

L'idée est de créer des configurations de démarrage qui exécutent la méthode DebugRunTestCase() de la classe %UnitTest.Manager. Dans le cadre de cet article, nous allons créer plusieurs configurations afin de démarrer l'exécution des méthodes de test : 

  • d'une classe spécifique
  • de la classe dont le nom est sélectionné dans l'éditeur
  • de la classe ouverte dans l'éditeur

Voici ces trois configurations, dans un fichier launch.json complet :

{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "objectscript",
      "request": "attach",
      "name": "ObjectScript Attach",
      "processId": "${command:PickProcess}",
      "system": true
    },
    {
      "type": "objectscript",
      "request": "launch",
      "name": "Classe spécifique",
      "program": "##class(%UnitTest.Manager).DebugRunTestCase(\"\",\"test.ut.ks.lib.hl7.UtilsTest\", \"/debug=1/recursive=0\")"
    },
    {
      "type": "objectscript",
      "request": "launch",
      "name": "Classe sélectionnée",
      "program": "##class(%UnitTest.Manager).DebugRunTestCase(\"\",\"${selectedText}\", \"/debug=1/recursive=0\")"
    },
    {
      "type": "objectscript",
      "request": "launch",
      "name": "Classe ouverte",
      "program": "##class(%UnitTest.Manager).DebugRunTestCase(\"\", $replace($replace($replace(\"${relativeFile}\",\"src\\\",\"\"),\".cls\",\"\"),\"\\\",\".\"), \"/debug=1/recursive=0\")"
    }
  ]
}

Pour éditer le fichier launch.json, cliquez sur l'icône 'launch & debug' et le bouton 'settings' :

 
Une fois les configurations ajoutées dans launch.json, elle peuvent être exécutée en sélectionnant la configuration souhaitée et en cliquant sur l'icône de démarrage :

 

Discussion (0)1
Connectez-vous ou inscrivez-vous pour continuer