Configurations pour les questions de développeur Front-end, Back-end et Full stack

Last updated: December 12, 2024

Un projet valide doit avoir un fichier de configuration hackerrank.yml valide dans le répertoire racine. Consultez les exemples ci-dessous ou la référence de configuration pour apprendre comment en écrire un pour votre projet.

Référence de configuration

version : (numéro)
- [obligatoire] Numéro de version pour le schéma de configuration.
- La version actuelle est 1.0configuration : (hash)
- [obligatoire] Attribut parent pour la configuration.
- Toutes les configurations du projet sont fournies ici
has_webserver : (booléen)
- [obligatoire] Définir si un projet possède un serveur web exposé
(accessible en dehors du serveur).
- Utilisez un port ouvert (3000, 3030, 5000, 6000, 6001, 8000, 8080)
pour publier le serveur. Tous les autres ports sont bloqués pour la communication extérieure.
readonly_paths : (tableau)
- [optionnel] Une liste de chemins de fichiers et/ou de motifs regex
qui doivent être marqués en lecture seule pour les candidats
scoring : [optionnel] (hash)
- [obligatoire] Attribut parent pour la configuration liée au scoring
command : (chaîne)
- [obligatoire] La commande de scoring est définie ici.
- Cet attribut doit être fourni pour que le scoring fonctionne
files : (tableau)
- [optionnel] Une liste de fichiers de sortie de scoring peut être fournie ici.
- Une fois la commande de scoring exécutée, la plateforme recherchera ces fichiers
et les analysera pour calculer le score final.
- Si ces fichiers ne sont pas fournis, la sortie de la commande de scoring est utilisée pour le scoring.
testcase_weights : (hash [<nom du cas de test>:<poids>])
- [optionnel] Cet attribut peut être utilisé pour fournir un scoring pondéré
pour les cas de test.
- La somme totale de tous les poids doit être
1. La validation échouera si la somme totale de tous les poids n'est pas égale à un.

- Les poids des cas de test sont appariés par nom de cas de test,
donc tous les noms de cas de test doivent être uniques (à travers les fichiers).
ide_config : (hash)
- [obligatoire] Toute la configuration liée à l'IDE est fournie ici
default_open_files : (tableau)
- [obligatoire] Fournir une liste de fichiers par défaut à ouvrir ici.
Le chemin doit être relatif au dossier racine du projet.
project_menu : (chaîne)
- [obligatoire] Définir les commandes du menu du projet ici. Toutes les attributs enfants sont obligatoires.
run :
- [obligatoire] Fournir la commande pour l'élément de menu Projet > Exécuter
install :
- [obligatoire] Fournir la commande pour l'élément de menu Projet > Installer
test :
- [obligatoire] Fournir la commande pour l'élément de menu Projet > Tester

Exemple 1 : Configuration d'échantillon pour un projet node sans scoring

version : 1.0configuration :
has_webserver : false
ide_config :
default_open_files :
- app.js
project_menu :
run : npm start
install : npm install
test : npm test

Exemple 2 : Configuration d'échantillon pour un projet node avec un serveur web et scoring

version : 1.0configuration :
has_webserver : true
scoring :
# npm test est censé produire une sortie de test dans le fichier results/unit.xml.
command : "npm test"
files :
- results/unit.xml
ide_config :
default_open_files :
- app.js
project_menu :
run : npm start
install : npm install
test : npm test

Exemple 3 : Configuration d'échantillon pour un projet API Spring Boot Java avec cas de test pondérés

version : 1.0configuration :
has_webserver : false
scoring :
command : "mvn clean test"
files :
- target/customReports/result.xml
testcase_weights :
# Les poids doivent totaliser 1
Créer un modèle : 0.2
Supprimer un modèle : 0.2
Modifier un modèle : 0.2
Filtrer le modèle par attribut : 0.4
ide_config :
default_open_files :
- src/main/java/com/hackerrank/sample/controller/ModelController.java
- src/main/java/com/hackerrank/sample/model/Model.java
project_menu :
run : mvn clean spring-boot:run
install : mvn clean install
test : mvn clean test ; cat target/customReports/result.txt

Exemple 4 : Configuration d'exemple pour un projet node avec un serveur web et plusieurs fichiers de sortie

version : 1.0configuration :
has_webserver : true
scoring :
# npm test est censé produire une sortie de test dans le fichier results/unit.xml.
command : "npm test"
files :
- results/user.xml
- results/project.xml
- results/api.xml
ide_config :
default_open_files :
- app.js
project_menu :
run : npm start
install : npm install
test : npm test

Exemple 5 : Configuration d'exemple pour un projet node avec fichiers en lecture seule

Vous pouvez utiliser des fichiers en lecture seule pour marquer certains fichiers comme des cas de test en lecture seule. Le candidat ne pourra pas modifier ces fichiers.

version: 1.0configuration:
has_webserver: true
readonly_paths:
- app/test.js
- app/tests/*

scoring:
command: "npm test"
files:
- results/unit.xml
ide_config:
default_open_files:
- app.js
project_menu:
run: npm start
install: npm install
test: npm test