
Ψάχνετε για βιβλία ή άλλα στοιχεία που συζητούν πραγματικά *πώς* να γράψει ένα εργαλείο κάλυψης κώδικα σε Java? μερικές από τις διάφορες τεχνικές ή κόλπα - πηγή εναντίον κώδικα byte όργανα.


Αυτό είναι μια γλώσσα προγραμματισμού που παράγει Java byte κώδικα κάτω από το καπό.

 
Πώς να ξεκινήσετε τη σύνταξη ενός εργαλείου κάλυψη κωδικό;
==========================================================



Thxm, Mc! <http://asm.objectweb.org> / είναι ένα άλλο. *Εξαιρετική* τεκμηρίωση σχετικά με byte κώδικα όργανα, αλλά τίποτα «άμεσα» με στόχο τη σύνταξη ενός εργαλείου κάλυψης - μόνο μερικές συμβουλές και ιδέες.

 

Είναι scripting δημιουργίας γλώσσα bytecode σας; Έχει δημιουργήσει debug μεταδεδομένα; Αν ναι, bytecode όργανα είναι πιθανώς ο τρόπος να πάει. Στην πραγματικότητα, τα υπάρχοντα εργαλεία όπως θα λειτουργήσει πιθανότατα? ίσως με ελάχιστες τροποποιήσεις (το τυπικό πρόβλημα είναι τα εργαλεία γραμμένο να συνεργαστεί με Java και να αναλάβει com.foo.Bar.class αντιστοιχεί σε com / foo / Bar.java. Ξετυλίγοντας ότι η υπόθεση μπορεί να είναι κουραστική.) [ΕΜΜΑ](http://emma.sourceforge.net/) είναι ένα ClassLoader που κάνει byte-code επανεγγραφή για τη συλλογή κώδικα κάλυψη σε Java. Η κωδικοποίηση στυλ είναι λίγο funky, αλλά ήθελα να συστήσω την ανάγνωση του κώδικα για μερικές ιδέες.


Αν η γλώσσα scripting σας ερμηνεύεται τότε θα χρειαστεί κάτι υψηλότερου επιπέδου (επιπέδου πηγή) που ενώνεται στο διερμηνέα.

 

Μπορείτε επίσης να πάρετε τον πηγαίο κώδικα από ένα ανοικτού κώδικα εργαλείο κάλυψης και να μάθουν από αυτό.

 

Ίσως επίσης να θέλετε να χρησιμοποιήσετε κάτι σαν BCEL να αναλύσει ποιες γραμμές της πηγής στην πραγματικότητα υπάρχουν στο byte-code. Δεν θέλετε να αναφέρουν ότι τα πράγματα όπως κενές γραμμές και τα σχόλια που δεν έχουν καλυφθεί.

 

Αν μιλάμε για ColdFusion (που υποθέτω ότι είναι από τις ετικέτες), τότε δεν είμαι σίγουρος ότι αυτό είναι εφικτό, αλλά μπορεί να είναι πολύ λάθος εδώ ...


IIRC, όταν CF θα συγκεντρώνει ουσιαστικά συγκεντρώνει σε μια ερμηνεία μορφή του CFML ως απλό παλιό αρχείο προέλευσης java, αυτό στη συνέχεια συγκεντρώνονται στην κατηγορία. Ως εκ τούτου, οποιαδήποτε όργανα που μπορεί να έχετε θα ισχύουν για τον ενδιάμεσο φορέα έκδοσης και όχι από το ίδιο το CFML.


Λέγοντας αυτό όμως, Adobe έχεις το πρόγραμμα εντοπισμού σφαλμάτων CF τώρα που μπορεί να παρέμβει αν κώδικα, γι 'αυτό παρακαλώ αποδείξει ότι κάνω λάθος - Θα ήθελα πολύ κάλυψης κώδικα σε CFML.

 