Code Monkey home page Code Monkey logo

frameworkstest's Introduction

Tools zum Testen und Code-Qualität Sichern

In diesem Repository sind diverse Tools Beispielhaft enthalten um die Wartbarkeit von Code zu fördern. Dazu gehören Typescript, ESLint, IstanbulJS, TypeDoc, Mocha und Chai. Was jedes dieser Tools macht und welche Dateien dafür wichtig sind werde ich im folgenden erklären.

Zum Anfang

Als allererstes muss npm install ausgeführt werden. Hier einmal die wichtigen Befehle im Überblick

Test: npm test
Coverage Report: npm run coverage
Ausführen und Kompilieren: npm start
Dokumentation generieren: npm run doc

Kommen wir nun zu den einzelnen Tools.

Typescript

Da wir in unserem Projekt statische Typisierung verwenden möchten wurde Typescript installiert. Typescript wird in der Datei tsconfig.json konfiguriert. Von besonderer Bedeutung ist dabei der Eintrag mit:

"include": [
  "src/**/*.ts"
],

Hier wird festgelegt in welchem Ordner die Source Dateien sind. Die Ausgabe der kompilierten Javascript Dateien geschieht dann im Ordner dist.

ESLint

ESLint überprüft den Code auf festgelegte Code-Style konventionen. Die entsprechende Konfiguration dafür findet sich in der .eslintrc.yml. Die Datei kann vom Wizard aber auch als .js oder .json angelegt werden entsprechend mit anderer Syntax. In dieser Konfigurationsdatei kann man unter dem Punkt rules einzelne Regeln deaktivieren oder ihren Modus ändern von Error zu Warning, falls man nicht möchte, dass einzelne Regeln die Kompilierung unterbrechen.

Für ESLint ist auch das npm package typescript-eslint-parser der es ermöglicht diese Checks auch auf Typescript durchzuführen.

Der Linter kann manuell ausgeführt werden, mit dem angelegten npm script:

npm run lint

Mit npm run lint -- --fix können manche Fehler und Warnings auch automatisch behoben werden. Um einen kurzen Einblick in die Syntax zu kriegen schaut euch die Datei test.js an und schaut auch in die Dokumentation von Mocha.

Mocha

Mocha testet Javascript. Die Tests liegen im Ordner /test.

Die Tests mit Mocha konnen über das npm script ausgeführt werden.

  npm test

Dieses Script Linted und Kompiliert auch nocheinmal vorne Weg, außerdem führt es auch eine Analyse der Code Coverage aus, die auf der Konsole ausgegeben wird, aber dazu gleich mehr.

Chai

Chai liefert eine schöne alternative Syntax für Asserts.

foo(2).should.be.a('number');

Muss aber in den Tests nicht zwangsläufig verwendet werden, wenn es euch nicht gefällt. Man kann immernoch die normalen Assert-Statements benutzen.

Istanbul (NYC)

Istanbul/NYC kümmert sich um die Code Coverage. Mit dem Befehl:

npm run coverage

Kann der große HTML-Report erstellt werden. Dieser liegt dann unter /coverage. Es werden angaben gemacht zu Statement-, Branch-, Function- und Line-Coverage gemacht, außerdem kann man dort sehen welche Stellen im Quellcode abgedeckt sind oder nicht.

Typedoc

Typedoc kümmert sich um die Dokumentation. Sie wird auch im HTML Format erstellt. Man findet die Dokumentation nach ausführen des Befehls unter /docs. Der Befehl lautet:

npm run doc

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.