Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   {Fmx, Berlin] DUnitX-Unit-Tests für mobile Platttformen (https://www.delphipraxis.net/189221-%7Bfmx-berlin%5D-dunitx-unit-tests-fuer-mobile-platttformen.html)

Rollo62 19. Mai 2016 07:51

{Fmx, Berlin] DUnitX-Unit-Tests für mobile Platttformen
 
Hallo zusammen,

seit Ex10 sollte DUnutX enthalten sein
Zitat:

Neu in 10 Seattle! Unterstützung der DUnitX-Unit-Tests für mobile Plattformen (iOS und Android)
Kann das jemand bestätigen für Rx10.1 Berlin, wer arbeitet denn damit ?

Gibt es vieleicht etwas Besonderes dabei zu beachten für iOS, Android ?

Wie sollte man DUnitX am Besten anlegen damit man schnell und einfach mobil Testen kann ?
Womöglich gibt es irgendwo ein Demo-Project speziell für die mobilen Plattformen.

Rollo

Rollo62 19. Mai 2016 15:55

AW: {Fmx, Berlin] DUnitX-Unit-Tests für mobile Platttformen
 
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 :thumb: :thumb:

Rollo

Mavarik 28. Feb 2018 15:39

AW: {Fmx, Berlin] DUnitX-Unit-Tests für mobile Platttformen
 
Ok der Thread ist schon ein bisschen älter, aber eigentlich nicht beantwortet, oder?

Ein Demo-Projekt für iOS/Android wäre schön...

Mavarik

Mavarik 24. Jan 2019 15:33

AW: {Fmx, Berlin] DUnitX-Unit-Tests für mobile Platttformen
 
OK, ist schon ein bisschen her, aber ich bin erst heute dazu gekommen es wieder zu testen.

Die aktuelle Version (von eben) funktioniert dann auch mit RIO ohne Styles.

Ein Form mit

Delphi-Quellcode:
procedure TForm283.FormCreate(Sender: TObject);
begin
  TestInsight.DUnitX.RunRegisteredTests('http://<#IP>:8102');
end;
funktioniert dann auch sofort...

Grüsse

Mavarik :coder:


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:09 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz