Node.js-Test-Runner
- Node.js enthält jetzt standardmäßig einen Test-Runner
- In Testdateien können Tests geschrieben werden, indem das Modul
node:test importiert wird
- Einen einzelnen Test ausführen:
node --test tests/math.test.js
- Erkennt Testdateien automatisch und führt sie aus
- Mit dem mitgelieferten Modul
assert lassen sich Tests prüfen
- Mit Test-Suites und Hooks können zusammengehörige Tests gruppiert und verwaltet werden
Native Mocking-Unterstützung in Node.js
- Node.js enthält jetzt native Mocking-Funktionen
- Mocking-Funktionen, die sonst andere Test-Frameworks bereitstellen, können direkt in Node.js genutzt werden
- Mit der Methode
mock aus dem Modul node:test lässt sich Mocking umsetzen
Native Test-Coverage in Node.js
- Test-Coverage hilft dabei, den von Tests abgedeckten Bereich des Source Codes zu verstehen
- Ab Node.js 20 gibt es native Test-Coverage-Unterstützung
- Mit dem Flag
--experimental-coverage lassen sich Test-Coverage-Daten erzeugen
- Über Coverage-Reports können nicht getestete Codebereiche identifiziert werden
Node.js-Watch-Modus
- Der Watch-Modus erkennt Dateiänderungen in Echtzeit und führt Skripte automatisch erneut aus
- Externe Abhängigkeiten wie Nodemon sind nicht erforderlich
- Mit dem Flag
--watch lassen sich Dateiänderungen erkennen und Skripte automatisch ausführen
Node.js Corepack
- Corepack fungiert als Brücke zwischen Projekt und Paketmanager
- Im Projekt kann der zu verwendende Paketmanager festgelegt werden, den Corepack dann automatisch verwaltet
- Mit dem Befehl
corepack enable kann Corepack aktiviert werden
Node.js-.env-Loader
- Ab Node.js 20 gibt es native Unterstützung zum Laden von Umgebungsvariablen aus
.env-Dateien
- Mit dem Flag
--env-file lässt sich eine .env-Datei laden
- Es können mehrere
.env-Dateien geladen werden, um verschiedene Umgebungen zu konfigurieren
Unterstützung für import.meta in Node.js
- Node.js v20.11.0 und v21.2.0 unterstützen
import.meta.filename und import.meta.dirname
- Dateipfade und Verzeichnisnamen lassen sich dadurch einfacher abrufen
Native Timer-Promises in Node.js
- Ab Node.js v15 können Timer in Form von Promises verwendet werden
setTimeout und setInterval können als Promises genutzt werden, um asynchronen Code kompakter zu schreiben
Node.js-Permission-Modul
- Eine experimentelle Funktion zur Kontrolle des Ressourcenzugriffs von Node.js-Anwendungen
- Mit dem Flag
--experimental-permission lässt sich der Zugriff auf Dateisystem, Netzwerk, Umgebungsvariablen usw. einschränken
Node.js-Policy-Modul
- Eine Sicherheitsfunktion, die das Laden von Schadcode verhindern soll
- Mit dem Flag
--experimental-policy lässt sich eine Policy-Datei angeben und das Laden von Modulen steuern
7 Kommentare
node --runwird hier nicht erwähnt. Seit den neuesten Versionen lassen sich Skripte ohne Abhängigkeit von NPM ausführen. Der Start ist um ein Vielfaches schneller.Während ich diesmal am tsboard-Projekt gearbeitet habe, habe ich den Bun-Runtime ausführlich mit Node.js verglichen. Node.js ist zwar wirklich in fast jeder Hinsicht gut, aber diese zwei Punkte bleiben weiterhin schade: (1) keine TypeScript-Unterstützung, (2) Geschwindigkeit. Dinge wie die Kompatibilität oder dass es Hardware-Ressourcen nicht besonders wählerisch behandelt, finde ich hingegen wirklich beeindruckend.
Wenn Sie TypeScript und Ausführungsgeschwindigkeit berücksichtigen, schauen Sie sich die Bun-Runtime ruhig auch einmal an...!
Wow – im Original wird sogar Jest erwähnt.
Ich habe versucht, in einem kleinen Projekt von jest zu node.js zu wechseln, aber die Unterstützung für Assertion-Funktionen ist viel zu dürftig, daher eher nichts für mich :(
Die neuesten Trends werden ja unglaublich schnell aufgegriffen..
Und natives Mocking!