Frage

Wir haben ein großes Delphi-Projekt (1,5 Millionen Zeilen Code), und wir bewegen zu agilen Prozessen.

Wir haben bereits eine kontinuierliche Integrationsumgebung (Finalbuilder), die ich aktualisiert haben Unit-Tests (dunit) und Code-Metriken (CodeHealer) in den E-Mails an alle in unserem Entwicklungsteam aufzunehmen. Unsere Einheit Testabdeckung ist nicht groß, so dass ich jetzt bin versucht AQtime in die Mischung für einige Testabdeckung Ergebnisse auf jedem Build zu erhalten.

Ich bin mit der „Execute Program“ Aufgabe, die Unit-Test-Datei auszuführen, die Ergebnisse zu protokollieren und die Datei anschließend zu analysieren. Ich beabsichtige, die „Run Script“ Aufgabe verwenden AQtime (über COM) und exportieren Sie die Ergebnisse in XML zu laufen, so dass ich diese Ergebnisse analysieren durch können.

Das Problem, das ich habe, ist mit AQtime dem Unit-Test ausführbaren ausgeführt wird, verliere ich die Möglichkeit, das Gerät zu testen ausführbaren direkt zu überwachen. Ich möchte Finalbuilder erhalten die Ergebnisse der beiden Aufgaben zu analysieren. Weiß jemand, wie man Zugang zu den dunit Ergebnisse zu erhalten, wenn es heißt von AQtime?

War es hilfreich?

Lösung

Wir liefen diesen gleichen Weg nach unten, und wir nicht DUnit-Test von AQTime laufen,

Wir Stattdessen bauen und unsere Dunit Tests mit Finalbuilder laufen.

Unsere Unit-Tests XmlTestRunner verwenden, dann können wir wissen, ob die Test fehlschlägt oder nicht sehr leicht eine XPath-Abfrage auf der resultierenden XML-Datei verwendet wird.

Update: ein neues Update auf 7.0 Finalbuilder unterstützt jetzt DUnit. Es ist durch seine eigene XMLTestrunner.pas, die nach der Installation unter dem Verzeichnis ist Finalbuilder. Dieser Läufer gibt die Testergebnisse im gleichen Format wie NUnit. Es integriert sich dann wirklich gut in Finalbuilder Server.

Andere Tipps

Sie sind Art den Aufbau beschreiben wir zu langsam entwickeln sich.

  • DUnit-Tests werden als Konsolenanwendungen zusammengestellt mit dem TTextTestListener definiert in TextTestRunner Einheit.
  • CI-Server ist ein cmd-Skript, das alle Projekte aufbaut und führt alle Tests.
  • Die Ausgabe der Tests in einer Datei geleitet werden.

Eine Lösung könnte sein, diese Konsole Anwendungen haben AQTime Profil, während immer noch die Ergebnisse in eine Datei Rohr der Lage sein, die danach analysiert werden können?!

Eine andere Lösung könnte sein, Ihre eigenen Testlistener-Objekt zu implementieren und haben, dass das Objekt schreiben die Testergebnisse an die eventlog, direkt in eine Logdatei, einer Datenbank oder wo auch immer Sie mögen und haben dies durch Finalbuilder abgeholt.

Statt in Ihrer Projektdatei so etwas wie dies mit

  Application.Initialize;
  if System.IsConsole then TextTestRunner.RunRegisteredTests
  else GUITestRunner.RunRegisteredTests;

würde es so etwas wie dieses

werden
  Application.Initialize;
  if System.IsConsole then OurEventLogTestRunner.RunRegisteredTests
  else GUITestRunner.RunRegisteredTests;
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top