09. Juli 2021 Softwaretest von (Kommentare: 0)

Schon seit Jahren arbeite ich in java-basierten Testautomatisierungsprojekten ausschließlich mit TestNG als
Testframework.

Als ich im Jahr 2014 im Beruf die ersten Projekte umsetzte, konnte TestNG einfach durch ein besseres Feature-Set und
eine deutlich bessere parallelisierte Testausführung punkten.

Und auch in der heutigen Zeit, gefällt mir persönlich die Entwicklung von TestNG besser, zum Beispiel auch die
Guice-Integration. Mit einer simplen Annotation an einer Testklasse, kann das eigene Guice-Modul geladen und somit
Depenency-Injection deutlich vereinfacht werden.

Diesen Komfort gibt es in JUnit (5.7.2) nicht, jedoch lässt es sich mit einfachen Mitteln nachbauen und ich zeige wie.

13. August 2020 Web-Entwicklung von (Kommentare: 0)

Da ich nun bereits seit einigen Tagen mit Git arbeite und ein Fan von Aliasen und einfachen Workflows bin, aber oft bei Kollegen über folgende Meldung stolpere, möchte ich kurz zeigen, wie man diese nervige Meldung beim git push neuer lokaler Branches los wird.

$ erku@code-fever:~$ git checkout -b /feature/new-local-branch
$ erku@code-fever:~$ git push
fatal: The current branch feature/new-local-branch has no upstream branch.

Das ganze lässt sich durch das Setzen eines Default Settings in der Git-Konfiguration ändern, so dass der lokale Branch-Name immer als Initialeinstellung für den Remote-Branch genutzt wird.

28. April 2020 Softwaretest von (Kommentare: 0)

Beim Update von JDK 8 auf JDK 11,12 oder höher müssen bei Verwendung von Maven und des Maven Compiler Plugins die Source und Target Versionen von Java angehoben werden. Dabei gibt es ein kleines Fettnäpfchen, welches viele meiner Kollegen nicht auslassen. Ich erkläre kurz, wie man den unten beschriebenen Fehler korrigiert und das Projekt wieder kompilierbar macht.

 

$ mvn clean compile
Fatal error compiling: error: invalid target release: 1.12

03. April 2020 Softwaretest von (Kommentare: 0)

Bei Verwendung von Selenium und dessen RemoteWebDriver kann es bei der Ausführung von Tests und Interaktionen dazu kommen, dass Verbindungsprobleme oder Netzwerkprobleme auftreten und die intern von Selenium festgelegten Timeouts für ConnectionTimeout und ReadTimeout greifen.
Vor allem der Read Timeout sorgt hier dann für hängende Selenium-Sessions und lässt sich meist durch ein Abbruch des Testlaufs beheben.

Ich möchte zeigen, wie man Seleniums Default-Wert von 3 Stunden des Read-Timeouts von Selenium verändern kann.

21. Februar 2020 Softwaretest von (Kommentare: 1)

Beim Ausführen oder Debuggen von einzelnen Tests komplexer Testsuiten mit Gradle in IntelliJ habe ich des Öfteren von Kollegen schon folgenden Fehler erhalten - Mit der einfachen Bitte, dies doch zu Beheben.

Caused by: org.gradle.api.GradleException: No tests found for given includes: [com.example........XyzTestclassTest]

Das Ganze ist jedoch kein globaler Fehler in den vorhanden Testsuiten oder Testfällen, sondern schlichtweg eine Konfigurationseinstellung im IntelliJ.

21. Februar 2020 Web-Entwicklung von (Kommentare: 0)

Aktuell arbeite ich privat an einem Projekt basierend auf Angular. Beim Build für die Produktiv-Umgebung bin ich auf einen Fehler gestoßen. Ich lade mir eine Third-Party Bibliothek in das Projekt und dabei kam es zu folgendem Fehler. Wie man diesen umgeht und korrigiert möchte ich folgend erläutern.

WARNING in budgets, maximum exceeded for /home/node/app/angular-app/src/app/... Budget 6 kB was exceeded by 598 kB.

ERROR in Child compilation failed:
undefined
ERROR in budgets, maximum exceeded for /home/node/app/angular-app/src/app/... Budget 10 kB was exceeded by 594 kB.

08. Februar 2020 Softwaretest von (Kommentare: 1)

Als ich in der jüngeren Vergangenheit eine moderne Webseite testen sollte, stand ich vor dem Problem, dass die dort existierenden Elemente mittels Shadow DOM gerendert wurden.
Shadow DOM Elemente sind aus dem Selenium / Automatisierungsumfeld betrachtet Frames sehr ähnlich und halten einige Falltüren bereit.

Ich zeige, wie man solche Elemente mittels Selenium lokalisiert und damit arbeitet.