diff --git a/ift3913_tp2/Tester_des_metriques_3913TP2/ HTML_specifie_chemin.png b/ift3913_tp2/Tester_des_metriques_3913TP2/ HTML_specifie_chemin.png deleted file mode 100644 index b4651fb..0000000 Binary files a/ift3913_tp2/Tester_des_metriques_3913TP2/ HTML_specifie_chemin.png and /dev/null differ diff --git a/ift3913_tp2/Tester_des_metriques_3913TP2/3913tp2.py b/ift3913_tp2/Tester_des_metriques_3913TP2/3913tp2.py deleted file mode 100644 index 81f1858..0000000 --- a/ift3913_tp2/Tester_des_metriques_3913TP2/3913tp2.py +++ /dev/null @@ -1,106 +0,0 @@ -#!/usr/bin.env python -import os -from trace import CoverageResults - -def count_lines(directory, suffix=".java"): - "Compter le nombre de lignes dans le fichier de suffixe spécifié" - total = 0 - for root, _, files in os.walk(directory): - for file in files: - if file.endswith(suffix): - with open(os.path.join(root, file), "r", encoding="utf-8") as f: - total += len(f.readlines()) - return total - -# 1. Testez le rapport code/code principal -src_directory = "/Users/yalin/Desktop/jfreechart-master/src/main" -test_directory = "/Users/yalin/Desktop/jfreechart-master/src/test" -src_lines = count_lines(src_directory) -test_lines = count_lines(test_directory, "Test.java") #calculer tous les fichiers qui doivent être testés -ratio = test_lines / src_lines if src_lines != 0 else 0 -print(f"1: Rapport entre le code de test et le code principal: {ratio:.2f}") - -# 2. Taux de défauts -def run_tests_and_count_failures(): - "Exécutez des tests et comptez les échecs" - result = os.popen("mvn test").read() - failures = result.count("FAILED") - total_tests = result.count("Tests run:") - return failures, total_tests - -failures, total_tests = run_tests_and_count_failures() -defect_rate = failures / total_tests if total_tests != 0 else 0 -print(f"2:Taux de défauts: {defect_rate:.2f}") - -# 3. Nombre moyen de lignes de cas de test -def average_test_case_length(directory): - "Calculer la longueur moyenne du cas de test" - total_lines = 0 - total_files = 0 - for root, _, files in os.walk(directory): - for file in files: - if file.endswith("Test.java"): - with open(os.path.join(root, file), "r", encoding="utf-8") as f: - total_files += 1 - total_lines += len(f.readlines()) - return total_lines / total_files if total_files != 0 else 0 - -avg_length = average_test_case_length(test_directory) -print(f"3:Nombre moyen de lignes de cas de test: {avg_length:.2f}") - -# 4.Calculer la couverture du document de test -# Fonction pour compter les fichiers de test -def count_test_files(directory): - """ - Compte tous les fichiers se terminant par 'Test.java' dans le répertoire spécifié. - """ - test_files_count = 0 - - for foldername, subfolders, filenames in os.walk(directory): - for filename in filenames: - if filename.endswith('Test.java'): - test_files_count += 1 - - return test_files_count - -# Fonction pour calculer la couverture -def calculate_coverage(total_requirements, total_test_files): - - coverage_percentage = (total_test_files / total_requirements) * 100 - return coverage_percentage # retourner le valeur de la couverture - -total_test_files_count = count_test_files(test_directory) -coverage_percentage = calculate_coverage(src_lines, total_test_files_count) -print(f"4:Couverture du document de test: {coverage_percentage:.2f}%") - - # Déterminer le répertoire de sortie et le nom du fichier -output_directory = '/Users/yalin/Desktop/Tester_des_metriques_3913TP2' -output_file_path = os.path.join(output_directory, 'tache2_results.html') - -html_document = """ - - -
-1: Rapport code de test/code principal: {}
-2: Taux de defauts: {:.2f}
-3: Nombre moyen de lignes de cas de test: {:.2f}
-4: Couverture du document de test: {:.2f}%
- - -""".format(ratio, defect_rate, avg_length, coverage_percentage) - - -#Écrire un document HTML dans un fichier -with open(output_file_path, 'w', encoding='utf-8') as html_file: - html_file.write(html_document) - -print("Les résultats HTML sont écrits dans le fichier tache2_results.html") - - - - - diff --git a/ift3913_tp2/Tester_des_metriques_3913TP2/HTML_page.png b/ift3913_tp2/Tester_des_metriques_3913TP2/HTML_page.png deleted file mode 100644 index 37216cd..0000000 Binary files a/ift3913_tp2/Tester_des_metriques_3913TP2/HTML_page.png and /dev/null differ diff --git a/ift3913_tp2/Tester_des_metriques_3913TP2/README.md b/ift3913_tp2/Tester_des_metriques_3913TP2/README.md deleted file mode 100644 index 2fe989d..0000000 --- a/ift3913_tp2/Tester_des_metriques_3913TP2/README.md +++ /dev/null @@ -1,101 +0,0 @@ -README.md -# Outil de Mesure Tache2 - -Ce projet utilise un script Python pour analyser les tests du projet JFreeChart, en particulier en testant le rapport code de test/code principal, le taux de défauts des tests et la longueur moyenne des cas de test. - -## Prérequis - -Avant d'utiliser cet outil, assurez-vous d'avoir les prérequis suivants installés sur votre système : -- Python 3.x.x -- Apache Maven -- Un dépôt git cloné localement - -## Description -1. Le script “3913tp2.py” réalise les analyses suivantes : - -Rapport entre le code de test et le code principal : Il détermine combien de lignes sont dédiées aux tests par rapport au code source principal. -Taux de défauts : Il exécute les tests en utilisant Maven et compte combien d'entre eux échouent. -Nombre moyen de lignes de cas de test : Il calcule la longueur moyenne de chaque fichier de test. - -2. Le script “Temps_moyen_reparation.py” réalise un analyse suivante : - -Ce script Python est conçu pour calculer le temps moyen nécessaire pour apporter des modifications à un projet git en analysant les logs git. -Elle ne peut calculer qu'approximativement le décalage horaire entre le moment où un fichier a été créé et le moment où il a été modifié pour la dernière fois. - - -## Comment utiliser -1. Assurez-vous d'avoir Python installé - 1.1 Vous pouvez utiliser la commande "python --version" dans votre terminal pour vérifier s'il est déja installé. - - 1.2 Sinon, vous pouvez l'installer dans ce lien : https://www.python.org/ - -2. Assurez-vous qu'Apache Maven est correctement installé et configuré sur votre système avant d'exécuter le script - 2.1 Vous pouvez exécuter la commande "mvn --version" dans votre terminal. - - 2.2 Si la commande Not found s'affiche après avoir exécuté "mvn --version" dans le terminal, cela est généralement dû au fait que Maven n'a pas été ajouté à la variable d'environnement PATH de votre système. - - 2.3 Les méthodes suivantes peuvent nous aider à résoudre ce problème. - - 2.4 Vérifiez si Maven est installé : confirmez d'abord que vous avez bien installé Maven et que vous pouvez y accéder via le chemin absolu dans le terminal. - Vous peuvez exécuter la commande "ind / -name mvn 2>/dev/null" dans votre terminal pour trouver son chemin absolu. - - Si c'est trouvé: - (1)Ajoutez ensuite le chemin absolu à la variable PATH. On peut utiliser la commande : - -- utilisez Bash comme shell par défaut: - "echo 'export PATH=/path/to/maven/bin:$PATH' >> ~/.bash_profile" - -- utilisez Zsh comme comme shell par défaut: - "echo 'export PATH=/path/to/maven/bin:$PATH' >> ~/.zshrc" - - (2)Redémarrez votre terminal ou exécutez la commande suivant pour que les modifications prennent effet - -- utilisez Bash comme shell par défaut: - "source ~/.bash_profile" - -- utilisez Zsh comme shell par défaut: - "source ~/.zshrc" - Si non, téléchargez sur ce lien "https://maven.apache.org/". Suivez ensuite les étapes ci-dessus - - 2.5 Après cela, vous devriez pouvoir exécuter la commande mvn --version et voir les informations sur la version Maven. - -3. Assurez-vous d'avoir cloné votre dépôt git localement - 3.1 Si vous souhaitez cloner cette ressource dans un répertoire spécifié, executez la commande "cd path/to/your/project". - Sinon, la ressource sera clonée dans le répertoire dans lequel vous vous trouvez actuellement - - 3.2 Utilisez la command "git clone https://github.com/jfree/jfreechart.git" pour cloner cette ressource localement - Le resource du projet JFreeChart disponible à https://github.com/jfree/jfreechart. - - -4. Telecharge les des scripts sur ton ordinateur. Le script ”Temps_moyen_reparation.py“ doit être placé dans le répertoire cloné car - nous devons utiliser git pour rechercher la date du chaque fichier, afin que le programme puisse mieux être exécuté. - Le lien ver le script :https://github.com/mildshield14/IFT3913/tree/main/ift3913_tp2/Tester_des_metriques_3913TP2 - -5. Entrez le réperatoire où se trouve le script dans le terminal - "cd path/to/your/script" - Example:"/Users/yalin/Desktop/Tester_des_metriques_3913TP2" - -6. Modifiez les autorisations des fichiers avec la commande " chmod a+x 3913tp2.py" dans votre terminal - -7. Exécutez le script avec la commande : python1: Rapport code de test/code principal: 0.34114634157951607
-2: Taux de defauts: 0.00
-3: Nombre moyen de lignes de cas de test: 204.76
-4: Couverture du document de test: 0.17%
- -