Le portail est construit sur le framework PHP Symfony. Il nécessite l'installation d'un moteur php >=7.4 avec les extensions xsl
et intl
ainsi que le logiciel Yarn.
-
S'assurer que le proxy est correctement configuré (par exemple au moyen des variables d'environnement
http_proxy
ethttps_proxy
) -
Clôner le dépôt
-
Créer à la racine du projet un fichier nommé
.env.local
pour surcharger les informations du fichier.env
. Se référer au fichier.env
pour le compléter. -
Installer les dépendances php (
composer install
) -
Installer les dépendances Javascript (
yarn install
) -
Compiler les assets (
yarn encore
)
- Lancer les conteneurs docker :
docker-compose up -d --build --remove-orphans
oumake up
- Préfixe pour toutes les autres commandes :
docker exec -it web-client_backend_1 ...
Activer l'environnement de test :
# .env.local
APP_ENV=test
php bin/console cache:clear
Configurer le baseUrl
dans cypress.config.js specifique à votre installation :
baseUrl: "http://localhost:8080",
Lancer si première utilisation de cypress :
yarn cypress install
Configuration supplémentaire pour Linux sous WSL2 : https://nickymeuleman.netlify.app/blog/gui-on-wsl2-cypress
Ouvrir l'interface de pilotage de cypress :
yarn cypress open
Lancer les tests (mode headless
, sans visuel) :
# le mode headless (--headless) est activé par défaut
yarn cypress run --browser firefox
Lancer les tests (mode headed
, avec visuel) :
yarn cypress run --browser firefox --headed
Le navigateur sur lequel on souhaite exécuter les tests doit être installé sur votre machine.
Liste de navigateurs supportés : https://docs.cypress.io/guides/guides/launching-browsers#Browsers
Pour le bon fonctionnement de l'intellisense de votre IDE pour cypress, configurer le fichier jsconfig.json
ainsi :
"include": ["./node_modules/cypress", "cypress/**/*.js"]
En savoir plus : https://docs.cypress.io/guides/tooling/IDE-integration#Writing-Tests
Structure des tests :
// cypress/e2e/example.cy.js
describe("Description d'une suite de tests", () => {
context("Un ensemble de tests qui sont regroupés par un contexte particulier (par ex. utilisateur connecté ou non) (optionnel)", () => {
it("(it ou specify) un scenario représenté par une suite de tâches et vérification d'un comportement attendu (quelque chose qui se passe quand l'utilisateur effectue une action)", () => {
...
})
})
})
Voir les exemples dans /cypress/e2e
En savoir plus : https://docs.cypress.io/guides/core-concepts/writing-and-organizing-tests#Test-Structure
-
Plan du site Géotuileur : sitemap.md
-
Processus détaillé de création d'un flux de tuiles vectorielles workflow.md
-
Consignes de rédaction de la documentation utilisateur : docsify.md
-
Contenu et actions possibles depuis le tableau de bord d'un espace de travail : dashboard.md
-
Documentation détaillée de la généralisation : generalization.md
Quelques commandes make
ont été configurées comme raccourcis pour certaines tâches courantes :
- Voir la liste de commandes
make
disponibles :make help
- Voir le détail des commandes
make
dans le fichierMakefile
à la racine du projet - Compiler les dépendances PHP et JavaScript :
make compile-app
oumake compile-app-prod
en production
Si vous modifiez des templates twig, vérifiez leur syntaxe avec :
php bin/console lint:twig templates/
Vous pouvez lister toutes les erreurs php avec la commande :
vendor/bin/phpstan analyse -c phpstan.neon