Wie führe ich Funktionstests für mein Unity3D-Spiel durch?


25

Kontext

In Unity3d setze ich einige ältere Codes für ein Spiel fort, und ich möchte einige Funktionstests für die Regression schreiben, um sicherzustellen, dass ich beim Implementieren neuer Dinge oder beim Refactoring keine Fehler mache.

Ich weiß bereits, dass es die Suite "Unit Test Tools" für Unity3d als Asset gibt. Ich habe es als Unit-Test-Suite verwendet, also teste ich meine Modelle (Klassen).

Beispiel für einen Test, über den ich nachdenke

Für "Funktionstest" meine ich Folgendes:

  • Führen Sie das Programm aus
  • Wenn Sie sich in der Menüszene befinden, bestätigen Sie, dass eine Schaltfläche mit der Aufschrift "Start" vorhanden ist.
  • Klick es
  • Dann wird behauptet, eine neue Szene sei geladen
  • Angenommen, Pixel XXX ist rot
  • Klicken Sie in die Koordinate XXX
  • Stellen Sie jetzt fest, dass sich das Pixel in Grün geändert hat
  • etc.

Fragen

F1: Wie schreibe und führe ich Funktionstests für mein Spiel durch? Wird dies normalerweise auch in den UnityTestTools (UTT) durchgeführt?

F2: Wenn UTT mehr für Unit-Tests ist, gibt es dann eine separate Suite für Funktionstests? Welcher?

Anmerkungen:

Ich ziele auf Android und laufe Unity5.3.1f1


Soweit ich das beurteilen kann, dient das eingebaute UTT nur zum Testen von Einheiten. Möglicherweise gibt es ein Test-Tool, das Ihren Anforderungen entspricht
user3797758

3
Nicht wirklich. Unity Test Tools enthalten seit der ersten Version ein Toolset für Integrationstests und zahlreiche Zusicherungen. Wenn Sie so etwas in der integrierten UTT nicht sehen, laden Sie die vollständige UTT aus dem Asset Store herunter.
Maxim Kamalov

Werfen Sie einen Blick auf die Dokumentation zum Testlauf, Unity Test Runner Doc. Sie ermöglicht Tests sowohl im Wiedergabe- als auch im Bearbeitungsmodus.
Racksay

Antworten:


1

Nach meinem Verständnis möchten Sie Automatisierungstests in Unity verstehen.

Unity-Test-Tools

Dies sollte Ihre goto-Methode sein, aber bevor ich mich mit dem Wie befasse, werde ich das Warum untersuchen.

Die bevorzugte Methode für jede Form von Automatisierungstests besteht darin, diese in einer Umgebung durchzuführen, die der Produktion so nah wie möglich ist. Die Verwendung von Unity Test Tools (im Unity Editor) ist eine schlechte Idee für alle, die herkömmliche Integrationstests geschrieben haben.

Warum? Weil Sie bei jedem Integrationstest die geringste Menge an zusätzlichen Dingen benötigen, die Ihre Anwendung blockieren und die nicht vorhanden sind, wenn der Benutzer sie öffnet. Der Unity Editor hat möglicherweise eine andere Leistung oder ein anderes Verhalten als die iOS-Version (zum Beispiel).

Warum sollten Sie dann Unity Test Tools (UTT) verwenden?

Der Hauptgrund ist Bequemlichkeit. Sowohl der Unity Editor als auch UTT sind einfach und visuell zu bedienen. Es fällt Ihnen leicht, Tests zu schreiben, sie mit Ihrem spezifischen Spiel zu verknüpfen und zu verstehen, wenn sie fehlschlagen.

Was ist mit dem Verhaltensunterschied zwischen dem Unity Editor und der Produktion?

Schließlich ist der Unity Editor eine Hülle um Ihre Anwendung. Das heißt, es wird einige Unterschiede zwischen dem Editor und der Produktion geben. Abgesehen von den Integrationstests ist der Unity Editor jedoch schon sehr lange ein Wrapper. Es ist eine ausgereifte Plattform mit Tausenden von darauf gebauten Spielen. Die Ergebnisse von Integrationstests im Editor sind sehr genau.

In dem von Ihnen bereitgestellten Beispielszenario kann mit Unity Test Tools problemlos alles außer dem ersten Element bestätigt werden. Sie können wie bei jedem anderen Integrationstest Szenen öffnen und Verhalten überprüfen.

Ich schlage vor, die meisten (wenn nicht alle) Ihrer Tests mit UTT zu schreiben. Um die Kompatibilität mit Tools für die kontinuierliche Integration (z. B. Jenkins) zu erhöhen, möchten Sie diese möglicherweise über die Konsole mit Befehlszeilenargumenten ausführen .

Starten der Anwendung und manuelles Testen

Das Starten der Anwendung können Sie im Unity-Editor nicht präzise steuern. Um diesen Aspekt Ihres Spiels und mehr zu überprüfen, können Sie einige grundlegende manuelle Tests verwenden.

So nähern Sie sich dem:

  1. Stellen Sie sicher, dass Ihr Spiel ein Signal abgibt, wenn es die bestimmten Meilensteine ​​erreicht, die Sie interessieren (oder interessieren könnten). Die Protokollierung in eine Datei ist die häufigste Methode (mithilfe der automatischen integrierten Protokollierung oder einer Version eines Drittanbieters ).
  2. Lesen und analysieren Sie die Protokolle regelmäßig. Dies kann manuell geschehen oder mit Ihrer zweitliebsten Skriptsprache ausgeführt werden.

Alternativen

Es überrascht nicht, dass wir, da sich alles auf Unity bezieht, mehr als nur ein paar Alternativen haben. Hier sind einige, die Sie in Betracht ziehen könnten:

Je nach Umfang und Umfang Ihres Projekts möchten Sie möglicherweise eine oder mehrere der oben beschriebenen Optionen anwenden.

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.