Δοκιμές στη διαδρομή Lua

Μάθε πώς να δοκιμάζεις τις ασκήσεις σου στη Lua στο Exercism


Τρέξε τα tests σου με

$ busted

Για να εγκαταστήσεις το busted, δες την Εγκατάσταση της Lua τοπικά.

Debugging unit tests

Ο οδηγός αυτός θα σου δείξει πώς να ρυθμίσεις το VSCode με το test framework Busted και τον Local Lua Debugger, ώστε να μπορείς να βάζεις σημεία διακοπής τόσο στο spec των tests όσο και στο αρχείο που δοκιμάζει, κάνοντας πιο απλή τη ροή εργασίας της Ανάπτυξης καθοδηγούμενης από tests. Αυτός δεν είναι ο μόνος τρόπος, υπάρχουν πολλές μέθοδοι που μπορεί να δουλέψουν, αλλά αυτή η μέθοδος τουλάχιστον θα σε βάλει να ξεκινήσεις (σημείωση: έχει δοκιμαστεί και δουλεύει σε Windows 10 και Ubuntu 20.04).

Τώρα που ξεμπερδέψαμε με όλη αυτή την ορολογία, ας ξεκινήσουμε.

Μπορείς να παραλείψεις αυτά τα μέρη, αφού υπάρχουν μόνο και μόνο για να εξηγήσουν τη διαδικασία.

Στο VSCode αφαίρεσε ή απενεργοποίησε όλες τις άλλες επεκτάσεις debugger για Lua και εγκατέστησε τον Local Lua Debugger. Έπειτα δημιούργησε μια προσαρμοσμένη ρύθμιση εκκίνησης σαν αυτή:

{
	"name": "Busted",
	"type": "lua-local",
	"request": "launch",
	"program": {
		"command": "busted"
	},
	"cwd": "${workspaceFolder}/${relativeFileDirname}",
	"args": ["${file}"],
	"integratedTerminal": true
}

σημείωση: Η ιδιότητα integratedTerminal θα εμφανίσει μια προειδοποίηση που λέει Property integratedTerminal is not allowed, αλλά μπορείς άφοβα να την αγνοήσεις.

Η ιδιότητα cwd προσδιορίζει τον τρέχοντα κατάλογο εργασίας, κάτι που είναι σημαντικό για την επίλυση των διαδρομών. Από προεπιλογή, το Exercism εγκαθιστά κάθε άσκηση στον δικό της φάκελο, μέσα στον φάκελο του track. Έτσι, στην περίπτωση της Lua, μοιάζει κάπως έτσι:

└── Exercism/
    ├── lua/
    │   ├── armstrong-numbers
    │   ├── bank-account
    │   ├── binarysearch
    │   └── etc...
    └── python/
        └── etc...

Έτσι, όταν ανοίγουμε το VSCode από τον φάκελο /lua, ως εξής:

C:\users\<username>\Exercism\lua> code .

ή

/home/<username>/exercism/lua> code .

Το VSCode θα δείξει κάθε άσκηση στον δικό της φάκελο στον χώρο εργασίας μας. Αυτό σημαίνει ότι χρειαζόμαστε τη ρύθμιση εκκίνησης να αλλάζει τον τρέχοντα κατάλογο εργασίας, cwd, στον φάκελο κάθε επιμέρους άσκησης. Αυτό το κάνουμε συνδυάζοντας τις μεταβλητές του VSCode ${workspaceFolder} και ${relativeFileDirname}.

Η ιδιότητα args καθορίζει ποιο όρισμα θα περαστεί στο Busted. Σε αυτή την περίπτωση χρησιμοποιούμε τη μεταβλητή ${file} για να αναφερθούμε στο αρχείο που είναι ανοιχτό εκείνη τη στιγμή.

Έπειτα πρόσθεσε αυτές τις τρεις γραμμές στην αρχή του αρχείου tests για την άσκηση που δουλεύεις, το οποίο ονομάζεται <exercise_name>_spec.lua:

if os.getenv("LOCAL_LUA_DEBUGGER_VSCODE") == "1" then
  require("lldebugger").start()
end

Τώρα, όταν θέλεις να τρέξεις τα tests με τον debugger, άνοιξε το αρχείο tests και μετά τρέξε τη ρύθμιση εκκίνησης που μόλις δημιούργησες, από την πλαϊνή στήλη Run and Debug (Ctrl+Shift+D) στα αριστερά. Αν το αρχείο tests είναι σε εστίαση, η ρύθμιση εκκίνησης θα τρέξει αυτά τα tests, σταματώντας στα σημεία διακοπής, και θα εκτυπώσει την έξοδο στην καρτέλα DEBUG CONSOLE του ενσωματωμένου τερματικού στο κάτω μέρος.

Καλό προγραμματισμό!