Pré-compilation PL / SQL et contrôle de la qualité du Code dans un environnement de construction automatisé? [fermé]

nous construisons des logiciels en utilisant Hudson et Maven. Nous avons C#, java et last, mais pas des moindres sources PL / SQL (sprocs, packages, DDL, crud)

pour C# et Java, nous faisons des tests unitaires et des analyses de code, mais nous ne connaissons pas vraiment la santé de nos sources PL/SQL avant de les publier dans la base de données cible.

exigences

il y a deux choses que nous ne voulons pas tester dans la priorité suivante:

  1. les sources sont-elles valides, donc"compilables"?
  2. pour les paquets, en ce qui concerne une certaine base de données, compileraient-ils?
  3. qualité du Code: avons-nous des défauts de code comme des doublons, des méthodes trop complexes ou d'autres violations à un ensemble défini de règles?

aussi,

  • l'outil doit fonctionner sans tête (commandline, ant, ...)
  • nous voulons faire l'analyse partielle de la base de code (modifié sources uniquement)

outils

nous avons fait un peu de recherche et avons trouvé les outils suivants qui pourraient potentiellement aider:

Jusqu'à présent, Le Crapaud pour Oracle avec Sonar semble être une solution élégante. Mais peut-être que nous manquons quelque chose ici?

des idées? D'autres produits? Expériences?

questions connexes sur SO:

22
demandé sur Community 2010-06-10 16:18:57
la source

3 ответов

je pense que ce blog décrit le processus nécessaire:

http://www.theserverlabs.com/blog/?p=435

s'il vous Plaît vérifier les et laissez-moi savoir ce que vous en pensez.

6
répondu Hanno 2016-07-18 12:54:18
la source

notre approche est de garder chaque objet de base de données (tables, vues, fonctions, paquets, sprocs etc) dans son propre fichier sous contrôle source et avoir un serveur d'intégration ( TeamCity , Hudson etc) faire une construction nocturne de la base de données - à partir de source - où il tombe et recrée le schéma avant de vérifier les erreurs de compilation dans la table de système user_errors . Cela vous permet de savoir quand quelqu'un a introduit des erreurs de compilation dans la construction.

la prochaine étape est d'utiliser quelque chose comme Pluton pour ajouter des tests unitaires à votre code PL/SQL et ajouter ceux-ci dans la tâche de construction nocturne. Pour nous, il a fallu disposer d'un échantillon d'ensembles de données d'essai (également sous contrôle de source) qui nous permettent de mettre la base de données dans un "état connu" aux fins d'essai.

Je n'ai rien trouvé qui nous aide beaucoup avec tout ce qui précède donc c'est principalement une collection de tâches Ant, des scripts shell personnalisés et wizardry, qui applique la DDL requise à une base de données vide et utilise DBMS_UTILITY.COMPILE_SCHEMA() pour compiler le schéma. Vous pouvez ajouter plus de choses de fantaisie plus tard, comme retracer des objets qui ne compilent pas ou échouent des tests à un soumettre dans le contrôle des sources, et l'émission "blâm mail".

je serais vraiment intéressé de voir si quelqu'un d'autre a une meilleure approche ou s'il ya un produit disponible sur le marché qui fait cela pour moi!

4
répondu ninesided 2010-08-13 14:49:52
la source

notre DMS Software Reengineering Toolkit est la base pour les outils personnalisables arbitraires. Il a une face avant PL/SQL qui peut être utilisée pour construire des contrôles de qualité de code source arbitraires. Oui, il y a une version en ligne de commande.

il existe une variété de PL/SQL COTS tools basé sur DMS qui pourrait être utilisé pour vérifier la qualité:

  • Formatter - Cleanans up layout. Effet secondaire: statique vérification de la syntaxe légale PL /SQL
  • moteur de recherche de Code Source - permet une recherche rapide de la base de code source indexée. Calcule les mesures Halstead et Cyclomatiques comme un effet secondaire de la mise en place de l'indice.
  • CloneDR - recherche et rapports dupliqué code PL/SQL
  • de la Couverture de Test - détermine la partie de code PL/SQL n'est pas exécuté par des tests (ad hoc, de l'unité ou des tests fonctionnels)

tous ceux-ci ont commande ligne versions.

2
répondu Ira Baxter 2010-10-06 18:50:08
la source