76 lines
1.9 KiB
Markdown
76 lines
1.9 KiB
Markdown
---
|
|
documentclass: book
|
|
papersize: a4
|
|
fontsize: 10pt
|
|
header-includes: |
|
|
\hypersetup{
|
|
colorlinks = true,
|
|
linkbordercolor = {pink},
|
|
}
|
|
---
|
|
|
|
# Projet de PG203
|
|
|
|
Ce starter kit vous permet de démarrer un projet d'application en
|
|
ligne de commande Java. La gestion du build est effectuée par l'outil
|
|
Gradle. Deux exécutables sont fournis: `gradlew` pour Unix ou MacOS et
|
|
`gradlew.bat` pour Windows.
|
|
|
|
Le starter kit vient avec:
|
|
|
|
- le framework [`JUnit 5`](https://junit.org/junit5/docs/current/user-guide/) pour gérer les tests;
|
|
|
|
- la bibliothèque [`JSON-Java`](https://github.com/stleary/JSON-java)
|
|
pour la manipulation de fichiers JSON;
|
|
|
|
- l'outil [`Jacoco`](https://www.jacoco.org/) pour la couverture du
|
|
code par les tests.
|
|
|
|
Le starter-kit contient un fichier
|
|
`src/main/java/eirb/pg203/Main.java` qui contient un programme de
|
|
démonstration. Ce programme récupère via l'API [Chuck Norris
|
|
Joke](https://api.chucknorris.io/) une blague sur Chuck Norris au
|
|
format JSON. Cette blague est ensuite parsée par la librarie
|
|
`org-json` et affichée sur la console.
|
|
|
|
Le fichier `src/main/java/eirb/pg203/SampleTest.java` contient un
|
|
petit exemple de test unitaire de la fonction qui télécharge et parse
|
|
la blague en question.
|
|
|
|
Voici comment effectuer les différentes commandes importantes.
|
|
|
|
## Compilation
|
|
|
|
```bash
|
|
./gradlew build
|
|
```
|
|
|
|
## Lancement des tests
|
|
|
|
```bash
|
|
./gradlew test
|
|
```
|
|
|
|
## Génération du rapport de couverture
|
|
|
|
```bash
|
|
./gradlew jacocoTestReport
|
|
```
|
|
|
|
Le rapport se trouve dans `build/reports/jacoco/test/html/index.html`.
|
|
|
|
## Lancement du programme
|
|
|
|
```
|
|
./gradlew run --args="arg1 arg2"
|
|
```
|
|
|
|
## Documentation
|
|
|
|
- WeatherAPI : la [documentation](https://www.weatherapi.com/docs)
|
|
ainsi qu'une [page de test](https://www.weatherapi.com/api-explorer.aspx)
|
|
|
|
- OpenMeteo : la [documentation](https://open-meteo.com/en/docs)
|
|
|
|
- OpenWeatherMap : la [documentation](https://openweathermap.org/api)
|