Wie verwalte ich Nicht-Unit-Tests in einem Projekt?


9

Ich habe einen Code in meinem Projekt, den ich persönlich nenne und testsder keine Unit-Tests sind. Sie sollen ausgeführt werden und das Ergebnis muss von einem Menschen bewertet werden. Ich habe das gemacht, weil ich eine Physik-Engine mache und während der Entwicklung musste ich sehen, was ich mache. Also habe ich ein simulationPaket in meinem Testmodul gemacht. Es handelt sich technisch gesehen um Unit-Tests, da die Simulationen die Unit-Test-Bibliothek verwenden, aber ich möchte nicht alle wie meine eigentlichen Unit-Tests ausführen.

Was ich tun möchte, ist, diese speziellen Tests von meinen Komponententests zu unterscheiden, da ich alle Komponententests einfach ausführen möchte. Ich denke, es ist ein bisschen wie bei Funktionstests. Haben Sie jemals einen Fall erlebt, in dem Sie Ihre Bewerbung auf Funktionstests vorbereiten mussten? Wo sollte diese Vorbereitung auf Funktionstests (im Grunde genommen meine Simulationen) im Projekt platziert werden und wie kann man sie von Unit-Tests unterscheiden?

Ich bin in Java, damit ich alle meine Methodensignaturen von @Test public void myNamedTest()auf ändern kann , public static void main(String[] args)aber es wäre mühsam und weniger praktisch für mich, meine Simulationen zu verwenden.

Ich benutze junitin einem gradleProjekt. Jede Lösung, mit der ein spezieller Testordner erstellt wird, gradleist willkommen.


2
Ich denke, Sie sprechen von einem Prüfstand, auf dem Sie Ad-hoc-Tests durchführen können. Diese gibt es schon so lange ich mich erinnern kann (über 30 Jahre) - möglicherweise sogar schon vorher. Sie befinden sich normalerweise in einem separaten Projekt, das auf die Bibliothek oder was auch immer zugreifen kann, aber Sie können es strukturieren, wie Sie möchten.
Robbie Dee

3
Die Begriffe Einheit / Integration / Funktionstests beschreiben den Umfang des Tests: Was wird getestet? Dies ist völlig unabhängig davon, wie diese Tests ausgeführt werden, z. B. manuelle Tests oder automatisierte Tests. Es kann automatisierte Abnahmetests und manuelle Komponententests sowie alles dazwischen geben. Wenn Sie also JUnit verwenden, um manuelle Funktionstests auszuführen, ist das vollkommen in Ordnung - halten Sie sie einfach irgendwie von Ihren automatischen Tests getrennt, damit sie nicht standardmäßig ausgeführt werden.
Amon

Antworten:


10

Es sieht so aus, als ob spätere Versionen von Junit Testkategorien unterstützen. Diese können nützlich sein, um jeden Test zu klassifizieren. Wenn die Build-Automatisierung ausgeführt wird, können diese Tests basierend auf der Kategorie ein- oder ausgeschlossen werden.

Ob Sie diese Tests in die Komponententests einmischen möchten, hängt von der Präferenz der Organisation ab. Möglicherweise möchten Sie ein separates "Prüfstand" -Projekt erstellen, um die regulären Komponententests von den spezielleren zu trennen.

https://dzone.com/articles/closer-look-junit-categories

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.