Skip to content
gplssm edited this page May 10, 2016 · 10 revisions

Differentiate two types tests: unit tests and integration tests.

Unit tests

  • Testen kleinst mögliche Einheiten innerhalb von oemof, z.B. Klassen und deren Schnittstellen
  • laufen sehr schnell durch
  • können vom Entwickler häufig angestoßen werden

Doc tests

  • Beispiele in Docstrings erfüllen zwei Zwecke
  • Dem Nutzer (Entwickler) ein Beispiel zu geben
  • Werden bei Verwendung der option --with-doctest ausgeführt und mit dem Ergebnis was hinter >>> steht verglichen

Integration tests

  • Wenden exemplarisch Funktionalitäten von oemof an (z.b. oemof.solph)
  • Test den Zusammenhang der Komponenteninteraktion
  • Testet die generelle Lauffähigkeit eine Beispielapplikation
  • Durch den automatischen Vergleich mit zuvor erzeugten Ergebnissen der Beispielanwendung wird sichergestellt, dass die inhaltliche Korrektheit gegeben ist
  • Stellt sicher, dass alle Bereiche , die nicht durch unit tests abgedeckt sind, getestet werden
  • Prüft den Programmteil hinsichtlich unterschiedlicher Interpretation übergebener Daten

Offene Fragen

  1. Abgrenzung von Integrationstest zu Systemtest?
  2. Welche sinnvollen unit tests sollte es in oemof geben?
  3. Sollen tests obligatorisch werden?
  4. Was bedeutet @classmethod?

Integration Tools

  • Travis CI
  • Führt automatisch alle definierten Tests durch, z.B. nosetests
  • Testet bei jedem push und/oder PR. PR bedeutet, dass merge zu Abzweigungsbranch getestet wird
  • App Veyor
  • Coveralls
  • Review Ninja