Manchmal möchte man sehen, wie der vorletzte Testlauf abgelaufen ist. Man kann defaultmäßig die letzten 10 Testläufe wieder zur Anzeige bringen über: „Junit 5 History oder „Was bisher geschah …“ unter Eclipse (Oxygen)“ weiterlesen
Neue Version der ARDUINO IDE 1.8.4 veröffentlicht
Für Mac OS X, Linux und Windows ist eine neue Version der Arduino IDE erschienen.
Was neu ist in ARDUINO 1.8.4 kann man in den Release Notizen nachlesen.

Quicktest ok.
JUnit 5 Test-Ergebnisse Import und Export im XML Format mit Eclipse Oxygen
Manchmal möchte man die lokalen JUnit 5 Testergebnisse für später aufheben oder als Doku verwenden oder sichern. Man kann die Ergebnisse als XML exportieren und auch später wieder importieren. So kann man sich dann Fehler oder Laufzeiten mal wieder anschauen.
Die Import und Export Menüs, erscheinen aber nur, wenn schon mal ein JUnit Test gelaufen ist, dann an dieser Position:
„JUnit 5 Test-Ergebnisse Import und Export im XML Format mit Eclipse Oxygen“ weiterlesen
Wie wird JUnit 5 (RC3 – Beta) Eclipse Oxygen 4.7.0 Support (Plug-In) installiert?
Heute wurde das JUnit 5 (RC3 – Beta) Plugin für Eclipse Oxygen 4.7.0 veröffentlicht (upgedated). JUnit 5 RC3 wurde schon am 23.8.2017 veröffentlicht. Der JUnit 5 Release Kandidat soll ja noch im 3. Quatal 2017 erscheinen, also im nächsten Monat 🙂
Wie wird das nun installiert?
Das JUnit 5 Plugin gibt es hier.
Einfach diesen Install Button per Drag and Drop in den Eclipse Workspace ziehen:
oder wie in der installations Anleitung beschrieben.
Es öffnet sich dieser Dialog: „Wie wird JUnit 5 (RC3 – Beta) Eclipse Oxygen 4.7.0 Support (Plug-In) installiert?“ weiterlesen
Quicktest billigstes Mulitmeter: WHDZ DT832 Portable Digital Multimeter für 3,64 Euro – Beginners only look for the cheapest offer.
Heute mal wieder ein neues Gadget aus China für 3,64 inkl. Versand eingetroffen!
WHDZ DT832 Portable Digital Multimeter mit zwei Messkabel aber ohne 9V Batterie 😉
Ideal um den Stromverbrauch oder die Spannung eines Raspberry Pi oder Arduino zu messen.
Innenansicht nach dem lösen von zwei Kreuzschlitzschrauben:
Naja, kalte Lötstellen für die NPN oder PNP Messungen sind auf den ersten Blick erkennbar. Die Funktion zum testen von Transitoren braucht wohl eh keiner.
Anleitung als PDF.
Techn. Daten mit CE Zeichen:
– DC voltage, AC voltage, DC current, AC current and resistance
– It is convenient to adjust what you need with button
– It is clear to operate with the text identifications
– The alarm will ring when detecting electric circuit on
– Small size, easy to carry
– Powered by 1 x 9V 6F22 battery ( not included )
Supply Voltage: 200-1000V
Product weight: 0.1100 kg
Package weight: 0.1870 kg
Product Size(L x W x H): 12.00 x 6.80 x 2.50 cm / 4.72 x 2.68 x 0.98 inches
Package Size(L x W x H): 13.50 x 10.00 x 3.60 cm / 5.31 x 3.94 x 1.42 inches
Package Contents: 1 x WHDZ DT832 Digital Multimeter, 1 x Table Pen, 1 x English User Manual
Projektvorschlag: Im Gehäuse ist noch Platz für einen ESP wie der WeMos. Damit können dann die gemessenen Werte drahtlos übertragen werden. Hat das schon jemand gemacht? Gern auch Link im Kommentar. Oder ist das mal ein Projekt für einen Samstag nachmittag, wenn die NOx oder Feinstaub Wert zu hoch sind 😉
Cooler CSV Reader in JUnit 5
Will man Testfälle aus einer CSV-Datei verwenden, geht das mit JUnit 5 Super einfach. Es gibt da eine neue Annotation @CsvFileSource der nur der Dateiname der CSV-Datei übergeben werden muss, und schon wird für jede Zeile der Test ausgeführt. Die Datei muss im Classpath liegen und mit Komma (,) getrennt sein. Sie darf keine Überschrift haben.
Als Beispiel soll mal die flug-data.csv dienen, die ua. die Summe aller erfassten Flugzeuge enthält.
Hier ein Auszug:
1 2 3 4 5 6 7 8 9 10 |
aed4022e-c6e9-45b1-96c1-14270c68a036,3550,Fri Jun 30 07:37:25 CEST 2017,287,148,115,200,139,150,110,122,129,157,155,250,347,531,293,302,99,16 8695a419-e76a-46f4-9a97-3ba7f0d06999,3514,Fri Jun 30 08:17:07 CEST 2017,206,138,126,181,137,151,126,119,117,142,172,214,338,576,353,292,103,23 ee29ce4a-4b9c-4491-ab6c-e888ccbbf4fa,3612,Fri Jun 30 08:29:03 CEST 2017,289,136,121,178,171,144,134,117,132,145,166,223,323,573,360,284,94,22 a95c25b5-8b3d-4922-9ce3-2d22269b32e8,3555,Fri Jun 30 09:23:14 CEST 2017,213,135,120,191,130,178,113,141,123,158,150,241,337,549,383,289,87,17 874494b7-4824-40b2-8660-d9acec56f837,4121,Fri Jun 30 11:27:51 CEST 2017,220,142,129,209,165,158,137,153,141,174,191,339,395,672,364,369,139,24 562e4c98-98bd-472c-9e9b-fc919c2260aa,5055,Fri Jun 30 16:00:44 CEST 2017,237,195,218,308,260,250,172,158,210,270,248,424,493,696,365,372,127,52 898c57c1-88c2-436d-b49a-a2db85ddc1fb,3277,Sun Jul 02 08:35:18 CEST 2017,211,116,92,156,118,129,102,126,99,125,134,198,308,592,393,289,77,12 6e3663bf-19c1-49fe-8260-3aa4e237b198,5084,Thu Jul 06 15:57:54 CEST 2017,292,206,216,318,259,221,149,150,179,211,230,364,474,781,421,390,160,63 ac38b07f-3aa6-4908-a7d7-bae630916f99,5296,Wed Jul 19 17:34:38 CEST 2017,259,237,214,347,272,237,181,174,186,237,202,332,440,821,439,480,183,55 b7f9487e-dd29-4095-a064-d401192ce9ad,4904,Sun Jul 23 20:32:03 CEST 2017,227,275,221,331,264,209,165,147,171,190,218,329,379,726,434,394,157,67 |
Wir wollen jetzt jede Zeile überprüfen, ob die Summe über 3000 Flugzeuge liegt und ob die UID vorhanden ist. Auch wollen wir die Testergebnisse um eine laufende Nr. ergänzen. „Cooler CSV Reader in JUnit 5“ weiterlesen
JUnit 5 @ParameterizedTest mit @ValueSource oder 3 Gründe warum man keine JUnit Tests schreiben sollte!
In JUnit 5 gibt es nun die Möglichkeit, Testmethoden mit Parametern ausszuführen. Anstatt der @Test Annnotation verwendet man die @ParameterizedTest. Nun braucht man noch eine Datenquelle mit @ValueSource.
Diese Klassen liegen in: „JUnit 5 @ParameterizedTest mit @ValueSource oder 3 Gründe warum man keine JUnit Tests schreiben sollte!“ weiterlesen
Rest Test Programm: Java Migration von JUnit 4 nach JUnit 5 (1.0.0.-M6)
Wollte mal mein REST Testprogramm auf JUnit 5 umstellen. Die neuen JUnit 5 Feature sind schon sehr interessant. Vor ein paar Tagen ist der neue M6 veröffentlicht worden (JUnit 5.0.0-M6 = Platform 1.0.0-M6 + Jupiter 5.0.0-M6 + Vintage 4.12.0-M6). Auch ist die Architektur nun grundlegend geändert. Und evl. will man schon mal die Neuen Features testen. Es gilt nicht: „Wer testet ist Feige ;-)“
Was ist da so nötig?
JUnit 5 braucht zur Laufzeit Java 8.
Versionen setzen
1 2 3 4 5 6 7 8 9 10 11 12 |
<properties> <java.version>1.8</java.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <restlet-version>2.3.10</restlet-version> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <junit.version>4.12</junit.version> <junit.jupiter.version>5.0.0-M6</junit.jupiter.version> <junit.vintage.version>${junit.version}.0-M6</junit.vintage.version> <junit.platform.version>1.0.0-M6</junit.platform.version> </properties> |
Die neuen Abhängigkeiten hinzu: „Rest Test Programm: Java Migration von JUnit 4 nach JUnit 5 (1.0.0.-M6)“ weiterlesen
חזרות Wiederholungen mit JUnit 5: @RepeatedTest
Manchmal will man eine Testmethode öfter ausführen. Das ist ja leicht mit einer Schleife möglich.
JUnit 5 bietet nun aber eine schöne Annotation an @RepeatedTest. Mit der kann leicht die Anzahl der Wiederholungen angegeben werden. Über die Methodenparameter TestInfo und RepetitionInfo kann zur Laufzeit auf die Klassennamen, Methodennamen und aktuellen runden Wert zugegriffen werden. Hier mal ein Beispiel:
„חזרות Wiederholungen mit JUnit 5: @RepeatedTest“ weiterlesen
Bluetooth Lampe mit Lautsprecher für ein paar Euro – 需要世界?
Quicktest einer Bluetooth Lampe mit Lautsprecher für ein paar Euro. Mit حكيم LED
es können per Fernbedinung alle Farben ausgewählt werden, z.B. Rot
Aber auch blinken usw. ist möglich. „Bluetooth Lampe mit Lautsprecher für ein paar Euro – 需要世界?“ weiterlesen
Neue Annotationen الشروح in JUnit 5 (= JUnit Platform + JUnit Jupiter + JUnit Vintage) für Java 8
Einige Namen von Annotationen wurden in JUnit 5 gändert, also von @Ignore nach @Disabled und …
Weitere Details „Neue Annotationen الشروح in JUnit 5 (= JUnit Platform + JUnit Jupiter + JUnit Vintage) für Java 8“ weiterlesen
Gurken-Test mit Cucumber
Mit Cucumber können Testfälle schön in Worte beschrieben werden. Hier mal ein schneller quick Einstieg.
Eine Testfall Beschreibung kann in Worten mit der Gherkin Syntax geschehen, z.B diese kalender.feature:
1 2 3 4 5 6 7 8 9 |
Feature: Lebenskalender überprüfen Scenario: Ein Lebenskalender aus der Konsole ausdrucken für Frauen Given eine Frau im Alter von 52 Jahren und 10 Monaten Scenario: Ein Lebenskalender aus der Konsole ausdrucken für Männer Given eine Mann im Alter von 52 Jahren und 10 Monaten |
In Eclipse sind die JUnit-Test auch schön lesbar, z.B.:
Für Eclipse gibt es ein Natural 0.7.6 Plug-In für die *.feature Dateien. Das kann leicht über den Eclipse Marketplace installiert werden:
Einfach alles installieren:
Die Testfall implementierung kann z.B. so aussehen. Dieser Testfall gibt nur einen Kalender auf der Konsole aus, deshalb gibt es nur das Generieren:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
package de.wenzlaff.lebenskalender; import cucumber.api.java.en.Given; /** * Testklasse für den Lebenskalender. * * @author Thomas Wenzlaff * */ public class LebenskalenderCucumber { @Given("^eine Mann im Alter von (\\d+) Jahren und (\\d+) Monaten$") public void generateMann(int jahre, int monate) throws Throwable { Lebenskalender.generate(jahre, monate, false); } @Given("^eine Frau im Alter von (\\d+) Jahren und (\\d+) Monaten$") public void generateFrau(int jahre, int monate) throws Throwable { Lebenskalender.generate(jahre, monate, true); } } |
Eine Testklasse zum starten des Testfalls:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
package de.wenzlaff.lebenskalender; import org.junit.runner.RunWith; import cucumber.api.junit.Cucumber; /** * Testsuite für den Lebenskalender. * * @author Thomas Wenzlaff * */ @RunWith(Cucumber.class) public class StartCucumberTest { } |
Folgende Abhängigkeiten werden in der pom.xml benötigt:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> <!-- Cucumber Test --> <dependency> <groupId>info.cukes</groupId> <artifactId>cucumber-junit</artifactId> <version>1.2.5</version> </dependency> <dependency> <groupId>info.cukes</groupId> <artifactId>cucumber-java</artifactId> <version>1.2.5</version> <scope>test</scope> </dependency> |
Das ganze Testprojekt kann auf Github geladen werden.
Eine weitergehende Anleitung auf deutsch gibt es hier.
MQTT.fx 1.2.0 erschienen
Während meiner Weltreise ist auch eine neue Version von MQTT.fx 1.2.0 erschienen.
Was ist neu, hier ein Auszug aus den Release Notes:
-Payload can now be decoded and exported in JSON format
-Topic of received messages can now be copied (and pasted) „MQTT.fx 1.2.0 erschienen“ weiterlesen