Einzelnen Beitrag anzeigen

Rollo62

Registriert seit: 15. Mär 2007
4.093 Beiträge
 
Delphi 12 Athens
 
#2

AW: {Fmx, Berlin] DUnitX-Unit-Tests für mobile Platttformen

  Alt 19. Mai 2016, 16:55
Ich habs jetzt rudimentät am Laufen, aber es geht alles wunderbar.
Mit ein bischen Anschub von Stefan hat es dann geklappt.

Mein Szenario ist Folgendes:
- Installation von TestInsight von Stefan Glienke
- Anlegen eines DUnitX-Projektes mit ein paar Testfällen
- Auf Win32 kein Problem, das ist wunderbar in die IDE integriert
- Auf iOS hatte es erstmal gehakelt, und ich dachte es wird viel komplizierter.
- Aber nein, dasselbe simple Projekt läuft 1:1 auch auf den mobilen Phones.

Wäre noch die Frage wie man das Setup noch optimieren könnte, aber für mich reicht es erstmal aus um diese mobilen Biester besser zu Testen.

Was man beachten muss:
Zitat:
Why does my project not report any results?

Please make sure that your project is enabled for TestInsight and that you added the TestInsight client units to your project and called them. You need to add the TestInsight.<framework> unit to your project that is for the test framework you are using (DUnit, DUnit2 or DUnitX). Then you need to call the RunRegisteredTests routine. Make also sure that TestInsight created a proper TestInsightSettings.ini next to your binary. This is where the TestInsight client gets its connection information.
Die TestInsightSettings.ini muss mit dem iOS/android Project deployed werden.

Das hatte ich erstmal nicht gemacht, aber in dem RunRegisteredTests hardcodiert, das funktionierte auch aber die
korrekte Methode mit der ini-datei will ich noch Testen.

Delphi-Quellcode:
procedure RunRegisteredTests;
var
  client: ITestInsightClient;
  logger: TTestInsightLogger;
  runner: ITestRunner;
  results: IRunResults;
begin
  client := TTestInsightRestClient.Create('http://192.168.2.118:8102'); // Hier hardcoded
  logger := TTestInsightLogger.Create(client);
  TDUnitX.Filter := TSelectedFilter.Create(client);
  runner := TDUnitXTestRunner.Create(logger);
  runner.FailsOnNoAsserts := True;
  runner.UseRTTI := True;
  results := runner.Execute;
end;

Auch muss man sicher sein das die Phones in dem gleichen SubNetz auf die IDE kommen, also wie immer checken
- Ping/Telnet erreichbar
- Firewall / Virenscanner
- Stimmen IP-Adressen und Port

Aber dann mit der richtigen BaseURL ging es auch direkt.
Wenn man ein Projekt auf Win32 angelegt hat geht es dann damit auch direkt auf IOS.

Weil ich ein paar Anfangsschwierigkeiten hatte, habe ich das nie richtig ausprobiert.
Aber das kann ich nur jedem empfehlen, ist wirklich simpel.

Vielen Dank Stefan für das tolle TestInsight Tool

Rollo
  Mit Zitat antworten Zitat